Projects and resources
A Project logically groups the resources that make up an application. A Resource is a concrete instance of a catalog type within the Project.
Project
A Project belongs to an Organization and has:
nome,slug, and description;modo:simplesoravancado;ambiente:dev,hml, orprod;resiliencia:unica,multi-zona, ormulti-regiao;estado(draft, planned, provisioned, paused);- a set of Resources.
States
rascunho— resources can be added or removed freely. No billing.planejado— configuration validated and provisioning plan computed.provisionado— active resources. Applicable metrics and billing in effect.pausado— suspended resources. Configuration is preserved.
Resource
Each Resource has:
tipo— catalog slug (compute,datastore,archive,fabric,gateway,autoscale,sentinel,insight,conduit,lane,beacon);nome— human-readable identifier within the Project;config— JSON with type fields. The backend applies defaults for omitted fields;estado—planejado,provisionado, orfalhou.
{
"tipo": "compute",
"nome": "api-pagamentos",
"config": {
"subtipo": "api",
"imagem": "ghcr.io/acme/pagamentos:2.4.1",
"porta": 8080,
"cpu": "1.0",
"memoria_mb": 1024,
"replicas_min": 2,
"replicas_max": 6
}
}Cross-resource references
Some fields have type ref and point to another Resource in the same Project: a Gateway's alvo_recurso_id points to a Compute; an Autoscale's points to the Compute to scale. Validation runs at creation time and provisioning order is resolved automatically.
Project files
Each Project has its own filesystem at /var/lib/tessera/files/<tenant_id>/<projeto_id>/. Used for:
- content generated by AI-assisted creation (HTML, CSS, README, blueprint);
- client file uploads (drag-and-drop in console or via API);
- inline editing of text files up to 1 MB.
Total quota and maximum upload size follow plan limits. Uploads are capped at 25 MB per file.
AI events
AI-assisted creation emits events during execution (planning, generating styles, generating page, blueprint ready, completed, or failed). The console shows real-time progress. Via API:
curl https://tesserra.io/api/projetos/$ID/progresso-ia \ -H "Authorization: Bearer $TESSERRA_TOKEN"