Skip to main content
This page is a stub. A human will curate and expand it before publishing.

Overview

Every major entity in Cyberwave has a unified, human-readable slug that uniquely identifies it across the platform. The slug follows a consistent three-segment format:
For example: acme-robotics/catalog/my-robot-arm

Type Prefixes

URL Format

The slug maps directly to the frontend URL:
For example: /acme-robotics/envs/production-floor

API Usage

Lookup by Slug

All entity APIs accept both UUID and slug for lookup. Use the dedicated by-slug endpoints when you have a slug:
  • GET /api/v1/environments/by-slug?slug={slug}
  • GET /api/v1/twins/by-slug?slug={slug}
  • GET /api/v1/workflows/by-slug?slug={slug}

Slug Availability Check

Check whether a slug is available before creating an entity:
Response:

Slug Generation

Slugs are auto-generated on entity creation from the entity name using Django’s slugify. Collisions are resolved by appending a numeric suffix: -2, -3, etc.

Workspace Rename

When a workspace slug changes, all entity slugs are updated automatically to reflect the new workspace prefix.

Python SDK Usage

The Python SDK fully supports unified slugs. Slugs and UUIDs are interchangeable wherever an identifier is accepted.

Deprecation Notices

  • registry_id and registry_id_alias on Assets: deprecated in favor of the unified slug field. Will be removed in a future release.
  • catalog_seed_id / catalog_key on ControllerPolicy metadata: deprecated. Use the slug field instead.