Time is an account
Expiration, lifetime access, stacking, freeze and resume. Every change to a license's time is a recorded, reproducible entry.
Platform
Two planes: a control plane that owns every decision, and a runtime gateway that enforces them under signature, every five seconds, for every session. What follows is what each part does today.
01Runtime authority
Obsidian keeps software access under continuous server authority, from license issuance and device binding to entitlements, sessions, delivery and revocation.
Fingerprints are supplied by the client and are spoofable by design; this is server authority, not DRM.
02Licensing and entitlements
Entitlements resolve through six layers with one implementation, and every value says where it came from.
Expiration, lifetime access, stacking, freeze and resume. Every change to a license's time is a recorded, reproducible entry.
Floating licensing with a seat budget that holds under concurrency.
Bulk issuance in one transaction; keys shown again only as an audited reveal.
Maintenance drains instead of ejecting; version floors are enforced numerically.
Release channels per license, reported in the runtime answer.
Typed remote configuration in the signed answer, with server-only values that never leave the control plane.
03Resellers
A separate population with its own console and credentials, bounded by policy that can only narrow.
04Customer identity
License key, password, magic link, Discord and passkey sign-in, per application and under your policy.
Operators, members, resellers and customers are separate security populations, with separate cookies, separate sessions and separate tables.
Hosted login: Authorization Code + PKCE, with license gating and refresh-token reuse detection.
A hosted sign-in can bridge into a runtime session on one device with a single-use, two-minute token, so a desktop application never handles a password.
05Commerce and fulfilment
From payment to permission: normalised orders, idempotent fulfilment, every step recorded and replayable.
Discord roles that follow licenses and entitlements, granted and removed by the platform, never by hand.
Bundles, invites and coupons that resolve to the same license rows as everything else.
Referral programs credit time or cash through the same ledgers; earned rewards accrue from recorded activity. Campaigns and transactional mail use your templates under your brand.
Providers: SellAuth and a signed custom contract.
06Software delivery
Private object storage; five-minute authorized downloads; every grant recorded.
Watermarking identifies a leaked artifact; it is not anti-tamper.
07Migration
Discover, map, dry-run, import, verify. From an Obsidian archive, a KeyAuth export, CSV or JSON.
KeyAuth is the only named third-party format; other systems go through CSV or JSON.
08White label
Your portal, store and hosted login on your own hostname, verified by DNS, with the certificate issued at the edge.
Brand name, logo, accent and support identity on every holder-facing surface.
No custom typography and no custom scripts on sign-in surfaces, by design.
portal.yourdomain, store.yourdomain, login.yourdomain, verified by a DNS TXT record, certificate issued at the edge, and the holder-facing surfaces only. The workspace, the reseller console and the operator console never appear on a custom host.
09Operations
The analytics reconcile against the rows they count, and the review queue is a list of things a person should look at, never a score.