Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
lic
command
lic is the Backplane licensing service: a 1:1 clone of the Keygen CE licensing API (URLs, JSON:API documents, headers, error codes, behavior) so Keygen clients cannot tell the difference.
|
lic is the Backplane licensing service: a 1:1 clone of the Keygen CE licensing API (URLs, JSON:API documents, headers, error codes, behavior) so Keygen clients cannot tell the difference. |
|
internal
|
|
|
app/access
Group and group-owner resource authorization (GroupPolicy, Groups::GroupOwnerPolicy).
|
Group and group-owner resource authorization (GroupPolicy, Groups::GroupOwnerPolicy). |
|
app/accounts
Package accounts is the account scenario: the single account's bootstrap and (later) its settings.
|
Package accounts is the account scenario: the single account's bootstrap and (later) its settings. |
|
app/apperr
Package apperr is the typed application error: everything a handler needs to render a Keygen error document (status, title, detail, code, source pointer/parameter/header, docs link).
|
Package apperr is the typed application error: everything a handler needs to render a Keygen error document (status, title, detail, code, source pointer/parameter/header, docs link). |
|
app/authn
Package authn is the authentication scenario: every Authorization scheme and the ?token=/?auth= query form, resolved to a principal.
|
Package authn is the authentication scenario: every Authorization scheme and the ?token=/?auth= query form, resolved to a principal. |
|
app/automation
Package automation records installation automation in the same transaction as Keygen webhooks.
|
Package automation records installation automation in the same transaction as Keygen webhooks. |
|
app/entitlements
Package entitlements is the entitlement scenario: the account-level CRUD of the features policies and licenses attach.
|
Package entitlements is the entitlement scenario: the account-level CRUD of the features policies and licenses attach. |
|
app/events
Package events is where scenarios report what happened: a Keygen webhook event ("license.created", "machine.heartbeat.ping", …) with the resource document it carries.
|
Package events is where scenarios report what happened: a Keygen webhook event ("license.created", "machine.heartbeat.ping", …) with the resource document it carries. |
|
app/groups
Package groups is the group scenario: CRUD, the member relationship indexes and the owners join resource.
|
Package groups is the group scenario: CRUD, the member relationship indexes and the owners join resource. |
|
app/jobs
Package jobs is the periodic-jobs runner: every tick takes a PG advisory xact lock so exactly one replica runs it, then runs the jobs that are due.
|
Package jobs is the periodic-jobs runner: every tick takes a PG advisory xact lock so exactly one replica runs it, then runs the jobs that are due. |
|
app/keys
Package keys is the key scenario: the members of pooled policies' key pools (create requires a pooled policy; the pool itself lives under /policies/{id}/pool).
|
Package keys is the key scenario: the members of pooled policies' key pools (create requires a pooled policy; the pool itself lives under /policies/{id}/pool). |
|
app/licenses
License actions: revoke, renew, suspend, reinstate, check-in and the usage counters.
|
License actions: revoke, renew, suspend, reinstate, check-in and the usage counters. |
|
app/paging
Package paging parses the three pagination modes (limit, offset, keyset) and the order parameter exactly like the reference, and builds the collection links (with pagination meta nested in links).
|
Package paging parses the three pagination modes (limit, offset, keyset) and the order parameter exactly like the reference, and builds the collection links (with pagination meta nested in links). |
|
app/passwords
Package passwords is the password-reset request scenario (POST /passwords): always a 204, indistinguishable for unknown emails.
|
Package passwords is the password-reset request scenario (POST /passwords): always a 204, indistinguishable for unknown emails. |
|
app/policies
Package policies is the policy scenario: CRUD over the full attribute surface, the product/license relationship routes, the key pool and entitlement attach/detach.
|
Package policies is the policy scenario: CRUD over the full attribute surface, the product/license relationship routes, the key pool and entitlement attach/detach. |
|
app/products
Package products is the product scenario: CRUD, the product's relationship routes (policies, licenses, machines, tokens, users) and product-token generation.
|
Package products is the product scenario: CRUD, the product's relationship routes (policies, licenses, machines, tokens, users) and product-token generation. |
|
app/search
Package search is POST /search: it validates a typed query, authorizes the bearer, and resolves the matching ids of one resource type.
|
Package search is POST /search: it validates a typed query, authorizes the bearer, and resolves the matching ids of one resource type. |
|
app/secondfactors
Package secondfactors is the TOTP second-factor scenario: create (secret revealed), enable/disable (OTP-verified), delete, and the index/show reads.
|
Package secondfactors is the TOTP second-factor scenario: create (secret revealed), enable/disable (OTP-verified), delete, and the index/show reads. |
|
app/tokens
Package tokens is the token scenario: generation (the POST /tokens endpoint).
|
Package tokens is the token scenario: generation (the POST /tokens endpoint). |
|
app/users
Package users is the user scenario: the bootstrap admin seed, the status computation, CRUD, the password/ban actions and the relationship reads (me/profile included).
|
Package users is the user scenario: the bootstrap admin seed, the status computation, CRUD, the password/ban actions and the relationship reads (me/profile included). |
|
app/webhooks
Package webhooks is the webhook scenario: endpoint CRUD (the URL, subscription and signature rules), the webhook-events routes (index, show, destroy, retry) and the event publisher that writes the outbox rows inside the caller's transaction.
|
Package webhooks is the webhook scenario: endpoint CRUD (the URL, subscription and signature rules), the webhook-events routes (index, show, destroy, retry) and the event publisher that writes the outbox rows inside the caller's transaction. |
|
domain
Package domain holds the pure rules of the licensing model: entities, enums, sentinels, key schemes and the expiry/status/heartbeat math.
|
Package domain holds the pure rules of the licensing model: entities, enums, sentinels, key schemes and the expiry/status/heartbeat math. |
|
domain/crypto
Package crypto holds the key generation and signing helpers: account keys, license-key schemes, license/machine files, response signatures and token secrets/digests.
|
Package crypto holds the key generation and signing helpers: account keys, license-key schemes, license/machine files, response signatures and token secrets/digests. |
|
domain/jsonapi
Package jsonapi holds the wire-format transforms every handler shares: the metadata key casing (camelCase on the wire, snake_case stored) and the timestamp rendering.
|
Package jsonapi holds the wire-format transforms every handler shares: the metadata key casing (camelCase on the wire, snake_case stored) and the timestamp rendering. |
|
infra/automation
Package automation declares the service-owned Backplane contracts and dispatches committed outbox records to the SDK.
|
Package automation declares the service-owned Backplane contracts and dispatches committed outbox records to the SDK. |
|
infra/cache
Package cache holds the cache-aside decorators of storage ports.
|
Package cache holds the cache-aside decorators of storage ports. |
|
infra/commit
Package commit runs actions after the surrounding transaction commits: effects outside the database (a cache invalidation) must not be observed before the change they describe.
|
Package commit runs actions after the surrounding transaction commits: effects outside the database (a cache invalidation) must not be observed before the change they describe. |
|
infra/console
Package console bridges the internal operator API to the real HTTP API.
|
Package console bridges the internal operator API to the real HTTP API. |
|
infra/httpapi
Package httpapi is the HTTP face of the service: the ogen handler (thin: extract params, call one scenario, translate the outcome), JSON:API rendering, the error mapping and the full middleware pipeline (request id, path normalisation, content negotiation, authentication, response signing).
|
Package httpapi is the HTTP face of the service: the ogen handler (thin: extract params, call one scenario, translate the outcome), JSON:API rendering, the error mapping and the full middleware pipeline (request id, path normalisation, content negotiation, authentication, response signing). |
|
infra/portal
Package portal serves the standalone customer portal, outside the public JSON:API middleware.
|
Package portal serves the standalone customer portal, outside the public JSON:API middleware. |
|
infra/postgres
The full licenses repository: rows with their policy and owner context, the filtered index, the relationship rows and the actions' writes (internal/app/licenses).
|
The full licenses repository: rows with their policy and owner context, the filtered index, the relationship rows and the actions' writes (internal/app/licenses). |
|
infra/render
License, machine, license-user/license-entitlement and license-file documents (the reference's LicenseSerializer, MachineSerializer, LicenseUserSerializer, LicenseEntitlementSerializer and LicenseFileSerializer).
|
License, machine, license-user/license-entitlement and license-file documents (the reference's LicenseSerializer, MachineSerializer, LicenseUserSerializer, LicenseEntitlementSerializer and LicenseFileSerializer). |
|
infra/webhook
Package webhook implements pg-outbox delivery: signed HTTP POSTs with Keygen's outcome classification, URL checks and auto-disable rules.
|
Package webhook implements pg-outbox delivery: signed HTTP POSTs with Keygen's outcome classification, URL checks and auto-disable rules. |
|
oas
Code generated by ogen, DO NOT EDIT.
|
Code generated by ogen, DO NOT EDIT. |
|
service
Package service is the composition root: it wires the configuration, the dependencies (PostgreSQL, Valkey) and the scenarios into the tree the Backplane SDK runs.
|
Package service is the composition root: it wires the configuration, the dependencies (PostgreSQL, Valkey) and the scenarios into the tree the Backplane SDK runs. |
|
testkit
Package testkit holds the helpers tests share: creating the bootstrap admin user and her token directly in the database.
|
Package testkit holds the helpers tests share: creating the bootstrap admin user and her token directly in the database. |
|
ui
Package ui carries the console module built by make web.
|
Package ui carries the console module built by make web. |
|
pkg
|
|
|
licensing
Package licensing is an idiomatic Go client for the Keygen licensing API (https://keygen.sh), working both against Keygen CE/EE and any 1:1 compatible implementation.
|
Package licensing is an idiomatic Go client for the Keygen licensing API (https://keygen.sh), working both against Keygen CE/EE and any 1:1 compatible implementation. |
|
licensing/internal/jsonapi
Package jsonapi is the licensing client's private JSON:API transport: the document envelope, request encoding, and response decoding into the client's typed structs.
|
Package jsonapi is the licensing client's private JSON:API transport: the document envelope, request encoding, and response decoding into the client's typed structs. |
|
proto
|
|
|
test
|
|
|
conformance
Package conformance provides a differential test harness that replays HTTP scenarios against a Keygen CE-compatible server, records normalised golden transcripts from the live Keygen CE reference, and diffs live runs against them.
|
Package conformance provides a differential test harness that replays HTTP scenarios against a Keygen CE-compatible server, records normalised golden transcripts from the live Keygen CE reference, and diffs live runs against them. |
Click to show internal directories.
Click to hide internal directories.