Skip to main content

Overview

The Project Service API manages AppProject resources, which provide logical grouping and access control for Applications. Projects define where apps can deploy, what can be deployed, and who can access them. Base Path: /api/v1/projects gRPC Service: project.ProjectService

AppProject Resource

An AppProject provides multi-tenancy and RBAC controls for Applications.

AppProject Spec

string[]
required
Allowed source repositories (supports wildcards)
ApplicationDestination[]
required
Allowed deployment destinations
ResourceSelector[]
Allowed cluster-scoped resources
ResourceSelector[]
Denied cluster-scoped resources
ResourceSelector[]
Allowed namespace-scoped resources
ResourceSelector[]
Denied namespace-scoped resources
ProjectRole[]
RBAC roles for the project
SyncWindow[]
Time windows for controlling sync operations
string[]
Namespaces where Applications can be created

Example AppProject

API Operations

List Projects

Retrieve list of projects.

Get Project

Retrieve a specific project.
string
required
Project name

Get Detailed Project

Get project with global projects and scoped resources.
string
required
Project name
Response includes:
  • Project definition
  • Global projects
  • Scoped repositories
  • Scoped clusters

Create Project

Create a new project.
AppProject
required
Complete AppProject resource
boolean
Update if already exists (default: false)

Update Project

Update an existing project.
AppProject
required
Updated AppProject resource

Delete Project

Delete a project.
string
required
Project name

Token Management

Create Project Token

Generate a JWT token for a project role.
string
required
Project name
string
required
Role name
string
Token description
int64
Token lifetime in seconds (0 = no expiration)
string
Custom token identifier
Response:

Delete Project Token

Revoke a project token.
string
required
Project name
string
required
Role name
int64
required
Token issued-at timestamp
string
Token ID (alternative to iat)

RBAC Policies

Project roles use Casbin policy syntax:

Policy Components

  • subject: proj:<project>:<role>
  • resource: applications, clusters, repositories, etc.
  • action: get, create, update, delete, sync, override, action/*
  • object: <project>/<application> or <project>/*
  • effect: allow or deny

Policy Examples

Sync Windows

Control when applications can be synced.

Get Sync Windows

Get active and assigned sync windows for a project.
string
required
Project name
Response:

Sync Window Configuration

Events & Monitoring

List Project Events

Get Kubernetes events for a project.
string
required
Project name
Get deep links configured for the project.

Global Projects

Global projects provide shared configuration.

Get Global Projects

Get global projects for a project.
string
required
Project name

Resource Restrictions

Allow All Resources

Specific Resource Types

Deny Specific Resources

Wildcard Patterns

Source Repositories

Destinations

Next Steps

Application API

Create applications in projects

Cluster API

Configure destination clusters

Repository API

Configure source repositories