Skip to content

Account, namespace, and repository names

Your username identifies your personal Ravenstash account. Each organization also has a public handle. Use either name with rvs account switch:

Terminal window
rvs account switch Avery
rvs account switch AcmeHQ

These names:

  • start with a letter;
  • use letters, numbers, and single hyphens;
  • contain at least three letters or numbers;
  • use no more than 32 characters; and
  • cannot begin or end with a hyphen.

Capitalization is preserved but does not make a name different. For example, AcmeHQ and acmehq refer to the same handle. An organization can have a longer display name that does not need to be unique.

A namespace groups repositories and, for organizations, helps control member access. Namespace names follow the same basic pattern as handles, with a limit of 64 characters. They are unique inside their personal account or organization.

A repository name identifies a repository inside a namespace. It:

  • starts with a letter;
  • contains letters, numbers, and single hyphens;
  • does not end with a hyphen or contain two hyphens together; and
  • uses no more than 64 characters.

Capitalization is preserved, but repository names are matched without regard to it. Packages and packages therefore cannot be two separate repositories in the same namespace.

Choose a name for the repository’s purpose rather than one package format. A repository named packages, releases, or platform can remain clear if you later add another format.

A name-based repository target combines the namespace and repository names:

platform/releases

Package addresses use that target:

https://pypi.rvsta.sh/platform/releases/simple/
https://npm.rvsta.sh/platform/releases/
https://maven.rvsta.sh/platform/releases/
oci.rvsta.sh/platform/runtime-images/team/api:1.0.0

rvs finds these addresses after you select platform/releases. If a namespace or repository is renamed, the next rvs command uses the new name.

Every namespace and repository has its own permanent ID. Internal namespace IDs start with in_; repository IDs start with ar_:

Namespace permanent ID: in_abcdefgh
Repository permanent ID: ar_23456789

An internal ID-based target combines the internal realm coordinate in with the repository permanent ID. The namespace permanent ID is deliberately not part of the target:

in/ar_23456789

Package addresses can use the same ID-based target for every enabled format:

https://pypi.rvsta.sh/in/ar_23456789/simple/
https://npm.rvsta.sh/in/ar_23456789/
https://maven.rvsta.sh/in/ar_23456789/
oci.rvsta.sh/in/ar_23456789/team/api:1.0.0

Permanent IDs are identifiers, not secrets, and do not bypass authentication or authorization. The namespace still owns the repository and still controls member access. The ID-based target remains valid when the namespace or repository is renamed and is designed to remain stable if a future feature moves the repository between internal namespaces.

For normal developer and CI workflows, prefer a name-based target such as platform/releases. Use in/ar_... when an integration must continue working across renames. The retired in_.../ar_... spelling is not supported.