System components
Identity & Access Management
User authentication, role-based access control, and authorization using a Zanzibar-style relationship model.
Organizations
Top-level containers that group projects and define membership boundaries.
Projects
Resource containers within organizations. Each project isolates its own artifact repositories and service accounts.
Service accounts
Machine identities for automation and CI/CD pipelines. Scoped to projects with key-based authentication.
Identity and access management
Platform implements a relationship-based access control system inspired by Google Zanzibar. Permissions are defined through relationships between subjects (users, service accounts) and objects (organizations, projects, repositories).Authentication
Platform supports password-based authentication with secure cookie sessions. Authentication state is managed through HTTP-only cookies with configurable domain and security settings.Authorization model
Access control uses a hierarchical role system where higher roles inherit all permissions from lower roles:- Direct grants: User explicitly assigned a role on a resource
- Inherited grants: Role inherited from a parent resource (organization → project)
- Computed grants: Role derived from another role (owner implies editor)
Roles
Organization-level roles propagate to all projects within that organization. A user with
editor on an organization automatically has editor on all its projects.
Service-specific roles
Artifact Store defines additional roles for fine-grained repository access:
These roles also follow the inheritance hierarchy and can be granted at organization, project, or repository level.
Organizations
Organizations are the top-level containers in the resource hierarchy. Every project belongs to exactly one organization.API operations
Member roles
When adding members to an organization, specify one of the following roles:Projects
Projects provide resource isolation within organizations. Artifact repositories, service accounts, and IAM policies are scoped to individual projects.API operations
Project roles
Service accounts
Service accounts provide machine identities for automation workflows. Each service account belongs to a specific project and authenticates using cryptographic keys.API operations
Key management
Service account keys are JSON credentials containing:- Service account identifier
- Private key for signing JWTs
- Token endpoint URI for credential exchange
Authentication flow
- Load the JSON key file
- Sign a JWT assertion with the private key
- Exchange the assertion for an access token at the token endpoint
- Include the access token in API requests via the
Authorizationheader
User administration
Global administrators manage users through the User Admin Service.API operations
User lifecycle
Users are soft-deleted rather than permanently removed. Deleted users:- Cannot authenticate
- Retain their resource assignments (for audit purposes)
- Can be restored by a global administrator
Management UI
Platform includes a web-based management console built with Next.js. The UI provides:- User authentication (login, logout, password change)
- Organization management (create, list, member administration)
- Project management (create, list, IAM configuration)
- Artifact Store integration (repository browsing, image details)
- Global settings for administrators (user management, organization oversight)
Quotas
Platform tracks resource usage and enforces limits at organization and project levels.Quota dimensions
Enforcement
Quota checks occur during resource creation. When a limit is reached, the operation fails with a clear error indicating the exceeded quota and current usage. Administrators can view and adjust quotas through the API or management UI.Configuration
Deployment
Requirements
Platform requires:- Access to a FoundationDB cluster
- Network connectivity to DFS for artifact storage operations
- A configured domain for cookie-based authentication
Initial setup
On first deployment, create an initial administrator:- Start Platform with the required configuration
- Navigate to the setup page in the management UI
- Create the first user account (automatically granted global administrator)