ConstructiVision — License & Entitlement Flow (ADN Submission)¶
Purpose: Autodesk App Network reviewer-facing one-pager. Describes the licensing mechanism shipped in the
.bundleper the ADN listing requirement. Audience: ADN reviewer / Autodesk publisher operations. Detailed engineering reference:docs/source/modernization-2026/54-cv-idn-architecture.md.
ConstructiVision is licensed via a SimpleStruct-hosted identity and entitlement service (CV-IDN), accessible at idn.simplestruct.com. The plugin enforces licensing at the deliverable-export boundary (print, PDF, DXF, CSV) using a token-balance ledger maintained by CV-IDN. The plugin itself contains no DRM, no offline activation strings, and no anti-tamper. It is a thin license client.
Identity¶
Users sign in once via a browser launched from AutoCAD, completing OAuth at any of five providers — including Autodesk APS — or via email/password:
Google
Apple
LinkedIn (OIDC)
Dropbox
Autodesk Platform Services (APS) — the Autodesk-native option
Email + password fallback
On successful sign-in, the web page issues a long-lived device token bound to the AutoCAD installation’s machine ID. The token is delivered to the plugin via a registered cv-cad:// URL handler (with a paste-back fallback). The plugin persists the token to %APPDATA%\ConstructiVision\device_token and uses it as a Bearer credential on every subsequent CV-IDN call.
Entitlement check¶
On AutoCAD startup and on every export attempt, the plugin calls POST /entitlement with its device token. CV-IDN returns:
{
"membership": { "status": "trial|active|past_due|canceled|expired", "period_end": "..." },
"balance": <integer tokens>,
"ai_unlocked": <bool>
}
The plugin caches this response. A new user gets a 7-day trial membership + 10 free tokens on first sign-in (granted by a Postgres trigger on auth.users insert).
Metering — token spend on deliverables¶
Each printed page, PDF panel book, DXF, or CSV materials list costs 1 token. The plugin calls POST /spend with a UUID idempotency key before producing the artifact. CV-IDN inserts a -1 row into the append-only token_ledger and an audit row into export_events (with file_hash stamped after the artifact is produced). Idempotency prevents double-charges on retry.
If balance == 0, CV-IDN returns HTTP 402 insufficient_tokens and the plugin presents an in-AutoCAD dialog directing the user to https://simplestruct.com/pricing to purchase a token bundle.
Native ConstructiVision file formats (.cvpanel, .cvsite, .cvp) are free to export — they are inter-app transport envelopes, not deliverables; the consumer pays their own token when they print or export a deliverable from them. This eliminates double-charging across the cv-web ↔ cv-cad workflow.
Membership vs tokens¶
CV-IDN expresses two orthogonal product axes:
Tokens — never expire, purchased à la carte (Bundle 10 = $500; Bundle 100 = $2,500). Spent only on deliverables. Token-only customers pay no recurring fees.
Membership — recurring subscription ($500/mo or $4,800/yr) that unlocks the cv-web online editor and AI features (pick simulation, auto-layout). Membership also drips 20 tokens/month.
The plugin participates only in token spend. Membership is a cv-web (browser) gate and does not affect the AutoCAD plugin’s behavior beyond the ai_unlocked flag (which is reserved for future AI features and is currently unread).
Payment¶
All payment is handled by Stripe (Live mode under the simplestruct.com account). The plugin never sees payment instruments. Users complete purchases at https://simplestruct.com/pricing, which redirects to Stripe Checkout. On success, Stripe fires checkout.session.completed to CV-IDN’s webhook endpoint, which inserts the appropriate +10 / +100 ledger row. The plugin’s next /entitlement call reflects the new balance.
Offline behavior¶
If CV-IDN is unreachable when the user exports, the plugin checks its cached entitlement. If the cache is < 24 hours old and shows balance > 0, the plugin optimistically allows the export and queues the /spend POST for reconciliation. On the next online connection, the queued spends drain to the server. This keeps field-laptop users productive when jobsites have no signal, while bounding the worst-case revenue loss to 24 hours of caching.
Revocation & device management¶
Users can list and revoke device tokens from their account settings in cv-web (under “Authorized devices”). Revocation is immediate: the next plugin call returns 401 and the user is prompted to re-sign-in.
Source artifacts in the ADN package¶
The license-client code shipped in the .bundle:
src/x32/TB11-01x32/cvidn.lsp— entitlement cache reader/writer;(cvidn_check_entitlement)and(cvidn_spend_token ...)APIsrc/x32/TB11-01x32/cvidn.ps1— single-purpose PowerShell HTTPS helper invoked via(startapp)src/x32/TB11-01x32/csvmenu.lsp— print/export menu items wrapped incvidn_spend_token
The matching 64-bit copies live in src/x64/TB11-01x64/. The web-side service (CV-IDN backend, cv-web sign-in pages, Stripe webhook handler) is open to the reviewer at idn.simplestruct.com and simplestruct.com/pricing.
Diagrams¶
The 6 sequence diagrams in 54-cv-idn-architecture.md are the formal authority on the runtime flow:
cv-web sign-in
cv-web export — happy path
cv-web export — 402 insufficient tokens
Subscription purchase via Stripe
cv-cad first-run sign-in (browser handoff)
cv-cad print spend (online + offline-grace)