Skip to content

Quickstart

Get Tessera running in 5 minutes with Docker.

Prerequisites

  • Docker and Docker Compose
  • A dbt project (optional, for manifest sync)

Start Tessera

# Clone the repository
git clone https://github.com/ashita-ai/tessera.git
cd tessera

# Start with Docker Compose
docker compose up -d

# Check it's running
curl http://localhost:8000/health

Tessera is now running at http://localhost:8000.

Access the Web UI

Open http://localhost:8000 in your browser.

Default credentials: - Email: admin@tessera.dev - Password: adminpass123

Create Your First Contract

1. Create a Team

curl -X POST http://localhost:8000/api/v1/teams \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TESSERA_BOOTSTRAP_KEY" \
  -d '{"name": "data-platform"}'

2. Create an Asset

curl -X POST http://localhost:8000/api/v1/assets \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TESSERA_API_KEY" \
  -d '{
    "fqn": "warehouse.analytics.users",
    "owner_team_id": "YOUR_TEAM_ID"
  }'

3. Publish a Contract

curl -X POST http://localhost:8000/api/v1/assets/YOUR_ASSET_ID/contracts \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TESSERA_API_KEY" \
  -d '{
    "schema": {
      "type": "object",
      "properties": {
        "user_id": {"type": "integer"},
        "email": {"type": "string"},
        "created_at": {"type": "string", "format": "date-time"}
      },
      "required": ["user_id", "email"]
    },
    "compatibility_mode": "backward"
  }'

4. Register as a Consumer

Another team can register as a consumer of your asset:

curl -X POST http://localhost:8000/api/v1/registrations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $CONSUMER_API_KEY" \
  -d '{
    "contract_id": "YOUR_CONTRACT_ID",
    "consumer_team_id": "CONSUMER_TEAM_ID"
  }'

Sync from dbt

If you have a dbt project, you can sync your models automatically:

# Generate your manifest
cd your-dbt-project
dbt compile

# Upload to Tessera
curl -X POST http://localhost:8000/api/v1/sync/dbt \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TESSERA_API_KEY" \
  -d @target/manifest.json

This will: - Create assets for each model - Extract column schemas from your YAML definitions - Publish contracts automatically

What's Next?