Account, namespace, and repository names
Usernames and organization handles
Section titled “Usernames and organization handles”Your username identifies your personal Ravenstash account. Each organization
also has a public handle. Use either name with rvs account switch:
rvs account switch Averyrvs account switch AcmeHQThese 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.
Namespace names
Section titled “Namespace names”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.
Repository names
Section titled “Repository names”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.
Name-based targets
Section titled “Name-based targets”A name-based repository target combines the namespace and repository names:
platform/releasesPackage 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.0rvs finds these addresses after you select platform/releases. If a namespace
or repository is renamed, the next rvs command uses the new name.
Permanent IDs and ID-based targets
Section titled “Permanent IDs and ID-based targets”Every namespace and repository has its own permanent ID. Internal namespace IDs
start with in_; repository IDs start with ar_:
Namespace permanent ID: in_abcdefghRepository permanent ID: ar_23456789An 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_23456789Package 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.0Permanent 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.

