Skip to content

Updates

What shipped.

Dated from the commits that shipped it, in the words the platform's own state document uses. An entry appears when something a customer can touch changes, not for every commit, and never ahead of the code.

  1. The API reference is public

    GET /api/v1/openapi.json answers without a credential. It is generated from the route table, names no identifier or secret, and leaves out the platform's own machinery; live calls authenticate exactly as before.

    developersapib77f5a5
  2. Cursor pagination on every list that grows

    Devices, sessions, events, customers (now searchable), resellers and campaigns page by an opaque (time, id) cursor, so a batch written in one instant is never repeated or skipped. Defaults to 100, up to 500.

    apidashboardcde0bf1
  3. Discord presence, the /link code in the portal, keys on the Customers page

    The bot shows online through a no-intent gateway connection; a holder pastes the code /link gives them into the portal; staff see and issue a customer's keys from the Customers page.

    discordportaldashboard39f8cf6
  4. Custom hostnames issue certificates at the edge

    A verified custom host is registered with Cloudflare for SaaS and served under its own certificate; the edge dispatches the holder-facing surfaces there and nothing else.

    white labeledgecfb9920
  5. Protected builds

    Per-holder builds with a signed watermark trailer and per-artifact sealing, queued with coalescing, delivered through recorded grants, revocable with every artifact; provenance approval on release files.

    deliveryec34435
  6. White labeling

    Brands carry a logo, an accent and a support address. Custom hostnames are proven by DNS TXT, and the portal, storefront and hosted sign-in are served there under that seller's brand alone.

    white label944dbfe
  7. The platform operator control plane

    A separate sign-in population for platform operators with its own cookie, sessions and immutable audit; support reads and cannot act.

    operationse37c32a
  8. Live client notifications

    GET /v1/auth/stream: a signed server-sent event stream that tells a running session it ended or its configuration changed. The heartbeat stays the authority; a severed stream changes nothing.

    runtimesdk0ade307
  9. Analytics and the review queue

    Analytics that count the rows and carry denominators; review rules that raise deduplicated flags for a human, with no score. Events partitioned by month with retention.

    operations662f4a0
  10. Communications

    Transactional mail from your templates under your brand, and campaigns to holders with per-recipient state and opt-out.

    mail90412e8
  11. Linked external accounts

    A holder links a Steam account the provider confirms; the worker polls its status within a budget; history is append-only and windowed.

    identityae1efac
  12. The migration engine

    Export an organization as a manifest with checksums; import an Obsidian archive, a KeyAuth export, CSV or JSON as a dry run with a report, then run one transaction at a time and resume without duplicates.

    migration0b6d2d5
  13. Floating licensing

    A seat budget per license; a session is the lease; the budget holds under a race; a reduction never ejects a running session.

    licensingruntimeb5fed61
  14. Referrals and earned rewards

    A referral code is a coupon with an owner, credited as time at once or as cash through a human-settled ledger; earned rewards accrue from recorded activity.

    commerced3a7d8b
  15. Catalog: bundles, invites, coupons

    Bundles fan out atomically by code, by staff and by order; product invites claim once per product per holder; coupons converge to the provider and discounts are captured.

    commerce3ee17fa
  16. Storefront

    One public page per organization with a catalog, live announcements and the applications' public status.

    commerce1cfcd61
  17. Typed configuration, preferences, advisory rollout

    Versioned application configuration with public, authenticated and server-only visibility in the signed answer; holder preferences; version rollout policy carried in the init payload.

    runtimedevelopersba06bd8
  18. Six SDKs, one contract, a CLI

    JavaScript, Python, Go, Rust, C# and C++20 judge the runtime's answers by one set of vectors; a hosted sign-in bridges into a runtime session; the CLI drives the management API with a credential from the environment.

    sdkdeveloperse028750
  19. The official Discord bot

    Slash commands under Discord's signature; roles that follow licenses and entitlements through the outbox, removed only where the platform granted them.

    discordbe83dd0
  20. The end-user surface

    The portal explains itself: each entitlement's source, each denial in the seller's words, announcements, orders, and a per-user export.

    portal42dbb2b
  21. The forward event feed

    Events in exact sequence after an opaque, scope-bound cursor; a limits contract; a consumer example that restarts without repeating.

    developersapi588eae0
  22. License lifecycle

    A license's time is an append-only account: stack, freeze and unfreeze, compensation in bounded chunks, and terminations that carry the operator's reason signed to the SDK.

    licensing408dfe8
  23. Commerce and fulfilment

    SellAuth and a signed custom contract normalise every storefront into orders; fulfilment runs paid lines through recorded steps exactly once, with replay and reconciliation.

    commercec7248cf
  24. Hosted authentication

    Authorization Code + PKCE for a seller's own software: exact-match redirects, license gating, EdDSA ID tokens, rotating refresh tokens with reuse detection.

    identitydevelopers1110208
  25. Releases and file delivery

    Versions on named channels with files in private object storage, uploaded straight to the bucket under signed URLs, entitlement-gated, downloaded through immutable grants.

    delivery2f228a6
  26. The event outbox and webhooks

    Events sequenced by a single relay; webhook deliveries signed under a rotating secret, retried with backoff, dead-lettered, inspectable attempt by attempt and replayable.

    developersd625bee
  27. The management API

    Scoped bearer credentials bound to an application or the organization, optionally confined to products, rotated with a grace period; the staff API as one declarative route table.

    apidevelopersd0decac
  28. Bulk issuance and retained keys

    Batches issued in one transaction, keys retained encrypted and shown again only as an audited reveal; a new application can issue immediately.

    licensing8f8658e
  29. Magic-link and Discord sign-in

    Two more ways a holder proves access, live once the mail and Discord credentials arrived.

    identityd6f55a3
  30. Deployed at obsidian.rip

    The control plane, the runtime gateway at auth.obsidian.rip, the worker and the dashboard behind the shared edge; runtime authentication routed to the gateway directly, never through the dashboard.

    deployment447533d