Everything on the rest of this site describes behaviour that exists. This page is the other half:
what a reasonable person might assume is there, and is not.
What works today
- The whole authoring path. Sign up, create Environments, Themes and Variants, edit tokens, import from four formats, version and publish — all self-serve in the portal.
- Serving. Publishing materialises the rendered files, and the edge serves them public or signed, with origin and IP allowlists and real cache behaviour.
- Access control. Team roles and per-Environment grants are enforced, on the portal and the API alike.
- The Public API. Every read and write documented in the API Reference.
Machine credentials are not issuable
No in-app upgrade
There is no checkout flow and no customer-portal link. A plan change is made in the billing provider’s dashboard or set by Livry staff. If you want to move from Free to Pro, get in touch.Deletion is recorded, not executed
An Owner can request deletion of a Team or an Environment, and Livry staff can approve, decline or withdraw the request. Deleting a Theme or a Variant is different and does work immediately and irreversibly.Coming-soon screens in the portal
Two areas exist in the Environment settings and do nothing:
There is no way to be notified when a publish finishes — poll the pinned URL instead. See
Caching.
Limits of the model, by design
These are not gaps and will not change:Smaller sharp edges
A Variant can be published only once per Theme version
A Variant can be published only once per Theme version
Its version number is the Theme version its overrides answer. A second publish against the same
Theme version answers
409. Publish the Theme first.A rename expressed as remove-and-add can lose an override
A rename expressed as remove-and-add can lose an override
When a Theme publishes, Variants are migrated onto the new structure. A rename sent as
move is
tracked exactly; a remove-and-add pair has to be inferred, and the inference can lose an override
when the rename also changed the value, or when two identically valued tokens are renamed
together.$extends and $ref are preserved but never applied
$extends and $ref are preserved but never applied
A DTCG document relying on either imports with tokens missing, and nothing warns you. Use
aliases.
Themes created before integrations existed serve nothing
Themes created before integrations existed serve nothing
They have no framework/library pair, and a Theme serves only what its pairs need. Add one on the
Integration tab and republish.
Plan enforcement counts, then creates
Plan enforcement counts, then creates
Two creates at the same instant can leave a Team one over its allowance.
The API takes etag as a query parameter, not If-Match
The API takes etag as a query parameter, not If-Match
If-Match is the correct idiom and is where this will end up. Moving it is a breaking change to
the API surface, so it will happen before the first customer depends on it.No Location header on a 201
No Location header on a 201
The created resource’s
id is in the body.No resolved-theme endpoint on the API
No resolved-theme endpoint on the API
Resolution is what the edge serves. An API endpoint that disagreed with the CDN would be two
answers to one question — fetch the URL in
servingUrls instead.