Public discovery
Docs, blocks, recipes, themes, templates, quality metadata, sitemap, and llms.txt on ensemble.cloudelephants.com.
Comprehensive API
The integration path for taking Cloud Elephants CMS configurations, building a static directory, uploading it to S3, and serving it through CloudFront wildcard tenant subdomains.
Docs, blocks, recipes, themes, templates, quality metadata, sitemap, and llms.txt on ensemble.cloudelephants.com.
Reads public APIs, selects clone-ready templates, and produces tenant configuration for the Cloud Elephants CMS.
Stores the tenant configuration, exposes /ensemble/v1/snapshot, and submits signed publish requests.
Accepts POST /api/ensemble/cms/publish, builds a static directory, and uploads it to the tenant S3 prefix.
CloudFront rewrites wildcard tenant subdomains to s3://<bucket>/sites/<tenant_slug> object keys.
Production requests should provide tenant_id, tenant_slug, snapshot_id, content_api_base_uri, requested_paths, and publish_environment. With tenant S3 publishing configured, the build service derives publish_uri and publish_url from tenant_slug.
For tenant_slug=acme-roofing, Ensemble derives s3://<bucket>/sites/acme-roofing and https://acme-roofing.mysite.cloudelephants.com.
The CloudFront Function extracts the tenant slug from <tenant_slug>.mysite.cloudelephants.com and rewrites requests to /sites/<tenant_slug>/ in the private S3 origin.
Builder discovers public templates, blocks, themes, recipes, and quality gates.
Builder writes tenant configuration into the Cloud Elephants CMS.
CMS exposes an ensemble.snapshot.v0 document for the tenant revision.
CMS sends the HMAC-signed publish request to the private build service.
Build service validates tenant_slug, source governance, preflight, and publish derivation.
Build service exports a static directory under ENSEMBLE_GENERATED_ROOT.
Publish adapter uploads the static directory to s3://<bucket>/sites/<tenant_slug>.
CloudFront serves https://<tenant_slug>.mysite.cloudelephants.com from that prefix.