Sylphx Data product site

Contract

The Product Contract is protobuf, not a second JSON SDK.

Semantic SSOT: proto/sylphx/data/v1/data.proto. Canonical public base: https://api.data.sylphx.com/v1. Residual dens data.api.sylphx.com is not dest. HTTP is a ProtoJSON projection of generated messages. A handwritten public request model is a defect.

Public resource families

FamilyKindSelected operationsInvariant
DatabasedatabasePutResource after signed Platform OperationReady only from POST /v1/database-platform-operations authorization platform-signed-database-operation
KVkv_namespacePutValue, GetValuePut then get returns the same key, value, and version
ObjectbucketPutObject, GetObject, multipart, sharesPut then get returns the same bytes, size, and SHA-256
Searchsearch_indexPutDocument, SearchLexical or cosine; Data does not invent embeddings

Customer authority headers

Authorization: Bearer <sylphx-delegation+jwt>
Sylphx-Project-Binding: <sylphx-project-binding+jwt>
Sylphx-Effect-Id: <closed-ascii-intent-id>

Audience is https://api.data.sylphx.com/v1. Closed EdDSA claims agree on product data, contract digest, project, binding, revision, and environment. Project comes only from those claims. Tenant headers and static secrets do not authorize a write.

Binding verifies on the Platform Binding Ed25519 JWKS pin https://api.sylphx.com/.well-known/project-binding-jwks.json (OKP/Ed25519/EdDSA/use=sig). Login https://api.sylphx.com/.well-known/jwks.json RSA is not dest Binding.

Not public customer routes

Platform-signed ingest is fabric-to-Data authority, not a customer hole and not dual-token:

Public unauthenticated routes are only GET /healthz, GET /readyz, and GET /v1/public/object-shares/{token}. Health 200 is not the Data contract.

Fail closed. A second public schema, Lattice JSON façade, Binding substituted by a Data product key, or parking this site on the peel is not this contract.