Skip to main content

Extension ID & Namespace

Every extension published on Lumio has a globally unique identifier and a namespace that forms the root of all storage keys, permission scopes, and API routes belonging to it.

Extension ID

The extension ID is assigned at creation time and never changes. It looks like a UUID:

ext_01j9k2m3n4p5q6r7s8t9u0v1w2

You can find it in lumio.config.json under the extensionId field and in the extension dashboard under Extension → Settings → Extension ID.

{
"extensionId": "ext_01j9k2m3n4p5q6r7s8t9u0v1w2",
"name": "My Scoreboard"
}

The extension ID is used:

  • As the primary key for extension installs, versions, and reviews
  • In the Lumio Developer API to query extension metadata
  • In support requests when contacting Lumio

Slug

In addition to the extension ID, each extension has a human-readable slug used in the store URL:

https://lumio.vision/store/extensions/my-scoreboard

The slug is derived from the extension name at creation time and must be globally unique across the store. Slugs:

  • Are lowercase, URL-safe (letters, digits, and hyphens only)
  • May be changed once before the first public release via the dashboard
  • Cannot be changed after the extension has been publicly listed

Namespace

The extension namespace is derived from the extension ID and scopes all server-side storage. Storage keys in server functions are automatically prefixed with the namespace — you cannot access or overwrite another extension's data.

// Internal key: ext_01j9k2.../user/u_abc123/score
await ctx.db.get("user", userId, "score");

The namespace also applies to:

  • Redis pub/sub channels — real-time messages are isolated per extension
  • Secret keys — secrets set via lumio secrets set are namespaced automatically
  • Egress quotas — rate limits are tracked per extension

Transferring ownership

Extensions are owned by the developer account that created them. Ownership can be transferred to another verified developer account via Extension → Settings → Transfer Ownership.

After transfer:

  • The extension ID and slug remain unchanged
  • The previous owner loses access immediately
  • Revenue from in-flight transactions routes to the new owner's payout method
  • Version history, reviews, and install base are preserved

Ownership transfer is irreversible. Both parties receive an email confirmation.

Deleting an extension

Extensions can be deleted from the dashboard if they have never been publicly listed. Once listed, deletion requires contacting Lumio support. Deleted extensions:

  • Are removed from the store immediately
  • Existing installs continue to function until the associated overlay is removed
  • Server function logs are retained for 30 days then purged
  • Extension ID and slug are permanently reserved and cannot be reused