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/dashboard/store/k8f2x-my-scoreboard

The URL combines the extension's short ID and slug. The slug is derived from the extension name at creation time. Slugs:

  • Are lowercase, URL-safe (letters, digits, and hyphens only)
  • Cannot begin with the reserved system- prefix (case-insensitive)
  • 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 env set belong to this extension only
  • 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