Skip to main content

Project Management

Projects connect Minimal to your databases. Each project belongs to an organisation and can hold one or more database connections. All System API endpoints require X-Server-Key from your config.yml.

Create a Project

To create a new project, see the Quick Start guide — Step 2 walks through the full create flow.


Update a Project

Updates an existing project's name, abbreviation, description, or database connection. Pass project_id in the body to identify which project to update.

Request Body

FieldTypeRequiredDescription
project_idstring✅ YesID of the project to update
namestring✅ YesUpdated project name
abbreviationstring✅ YesShort slug — max 5 characters
descriptionstring❌ NoOptional project description
database[].hoststring✅ YesDatabase host (e.g. localhost)
database[].portstring✅ YesDatabase port (e.g. 3306 for MySQL)
database[].usernamestring✅ YesDatabase username
database[].passwordstring✅ YesDatabase password
database[].db_namestring✅ YesName of the database to connect
database[].db_typestring✅ Yesmysql, postgresql, mariadb, or clickhouse
database[].connect_timeout_secsinteger✅ YesConnection timeout in seconds
database[].idle_timeout_secsinteger✅ YesIdle connection timeout in seconds
database[].max_open_connectionsinteger✅ YesMax open connections in the pool
database[].max_idle_connectionsinteger✅ YesMax idle connections in the pool

Response

200 OK:

{
"code": 200,
"status": "OK",
"message": "project updated successfully"
}

List Projects

Returns all projects under the specified organisation.

Required Headers

HeaderDescription
X-Org-IdOrganisation identifier
X-User-IdAuthenticated user's identifier
X-Server-KeyServer key from config.yml

Get Project Details

Returns full details of a specific project including its database connection configuration.

Required Headers

HeaderDescription
X-Project-IdProject identifier
X-Org-IdOrganisation identifier
X-User-IdAuthenticated user's identifier
X-Server-KeyServer key from config.yml

Index Project Tables

Triggers Minimal to scan and index all tables in the project's connected database(s). Run this after creating a project or after any schema changes to make tables available for the Auto API.

Required Headers

HeaderDescription
X-Project-IdProject identifier
X-Org-IdOrganisation identifier
X-Space-IdSpace identifier
X-User-IdAuthenticated user's identifier
X-User-RolesComma-separated roles (e.g., admin,user)
X-Server-KeyServer key from config.yml

Response

200 OK:

{
"code": 200,
"status": "OK",
"message": "project indexing started"
}
note

Indexing runs asynchronously. Use the Project Index Status endpoint below to check when it completes.


Project Index Status

Returns the current indexing status for a project. Poll this after calling Index Project Tables to confirm all tables have been indexed.

Required Headers

HeaderDescription
X-Project-IdProject identifier
X-Org-IdOrganisation identifier
X-Space-IdSpace identifier
X-User-IdAuthenticated user's identifier
X-User-RolesComma-separated roles (e.g., admin,user)
X-Server-KeyServer key from config.yml

Common Errors

CodeCause
400Missing or malformed request body
401Missing X-User-Id header
403Invalid or missing X-Server-Key
404Project not found — check X-Project-Id
417A required field is missing or abbreviation exceeds 5 characters
424abbreviation is too long — keep to 5 characters max