ops: register ust1cmm.com property + CORS + portal redirect allowlist #8
Labels
No labels
agent:implement
agent:ready
api
bot
bug
ci
enhancement
ready
security
terra-classic
testing
ux
web
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-ecosystem-legal#8
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Register USTR CMM (
ust1cmm.com) as a Legal property and allow the production origin to call the API and return from the portal.Integrator: ustr-cmm#12 / ustr-cmm!28. The frontend already uses
@plasticdigits/cl8y-clickwrapwithproperty=ust1cmm.comandnetwork=TerraClassic. Without this ops change, connected wallets onhttps://ust1cmm.comfail-closed (Failed to fetch/ unsigned) even after a portal sign.Acceptances are per hostname. A signature on
cl8y.comordex.cl8y.comis not evidence forust1cmm.com.Related: #7 (wildcard CORS) does not cover this —
ust1cmm.comis a different registrable domain. Add the exact origin.Actions (Legal Coolify / hosts)
1. Register the property
From a
cl8y-ecosystem-legalcheckout (script prompts forADMIN_TOKENhidden; do not put the token in this issue or in ustr-cmm):2. Legal API env (
api.terms.cl8y.com)Add the exact origin to
CORS_ORIGINS(comma-separated, no trailing slash):Redeploy / restart the API so
build_corspicks it up.3. Legal portal env (
terms.cl8y.comweb build)Add the exact origin to
VITE_REDIRECT_URI_ALLOWLISTand rebuild the portal (Vite bakes this in):Do not enable
VITE_ALLOW_LOCALHOST_REDIRECTon production portal.4. Verify
On
https://ust1cmm.com: connect a newterra1…→ accept panel → portal/sign/terra-classic?property=ust1cmm.com&redirect_uri=https%3A%2F%2Fust1cmm.com%2F…→ return →signed_latest: true.Pins
ust1cmm.comUSTR CMMhttps://ust1cmm.comTerraClassic/ APITERRA_CLASSICcl8y.com,dex.cl8y.com,www.ust1cmm.com(unless that host is actually served)Out of scope
ADMIN_TOKENin the ustr-cmm frontend.api.terms.cl8y.com/terms.cl8y.com). See integrator issue #12 for frontend env (mostly: leaveVITE_PLAYWRIGHT_E2EandVITE_LEGAL_PROPERTYunset on prod).Ops complete — verification 2026-08-15
Completed on Legal Coolify / hosts (no
ADMIN_TOKENrecorded here).Steps done
./scripts/register-property.sh ust1cmm.com "USTR CMM"(and--list).https://ust1cmm.comtoCORS_ORIGINSonapi.terms.cl8y.com; API restarted.https://ust1cmm.comtoVITE_REDIRECT_URI_ALLOWLIST; portal rebuilt.VITE_ALLOW_LOCALHOST_REDIRECTleft off in production.Automated verify (pass)
Property + Terra Classic sign URL
propertyust1cmm.comversion_label1.5sign_urls.terra_classichttps://terms.cl8y.com/sign/terra-classic?property=ust1cmm.comcontent_sha256fe8f0029fb14fb8c1705f6c462d384153660ac98954502a406634f73822f6189CORS preflight (
OPTIONS /api/v1/signatures/status,Origin: https://ust1cmm.com)Access-Control-Allow-Origin: https://ust1cmm.comNegative check:
Origin: https://www.ust1cmm.com→ noAccess-Control-Allow-Origin(expected; exact origin only).Portal allowlist (production bundle)
https://terms.cl8y.com/assets/index-BEep-Wfy.jsincludeshttps://ust1cmm.comalongside existing origins (cl8y.com,dex.cl8y.com,yieldomega.com, …). NoVITE_ALLOW_LOCALHOST_REDIRECTstring in the bundle.Not run here
Live wallet round-trip on
https://ust1cmm.com(connectterra1…→ portal sign →signed_latest: true) still needs a Keplr session on the dapp. API + CORS + baked redirect origin are in place for that path.Closing: issue acceptance curls and portal bake-in succeeded.
mentioned in issue #12