Skip to content

Releases: cipi-sh/api

Version 1.6.9

03 Apr 21:40

Choose a tag to compare

[1.6.9] - 2026-04-03

Changed

  • Welcome page (/): Restyled to match Laravel’s default framework error-page layout (inline Tailwind-style utilities, two-column header: Cipi | Easy Laravel Deployments, API Swagger link below). Supports prefers-color-scheme: dark alongside the light theme.
  • OpenAPI info.version 1.6.9.

Version 1.6.8

03 Apr 21:35

Choose a tag to compare

[1.6.8] - 2026-04-03

Changed

  • Welcome page (/): Minimal landing with the title Cipi - Easy Laravel Deployments and a single link to API Swagger (/docs); removed marketing copy, theme toggle, and external links.
  • OpenAPI info.version 1.6.8.

Version 1.6.7

03 Apr 21:21

Choose a tag to compare

[1.6.7] - 2026-04-03

Added

  • CipiDatabaseListCliService: runs sudo cipi db list via CipiCliService, parses output with CipiOutputParser for GET /api/dbs and MCP DbList.

Changed

  • GET /api/dbs: Lists databases through the Cipi server CLI (synchronous), not a background job and not a direct MySQL connection from Laravel—secrets stay inside Cipi.

Removed

  • CipiMysqlDatabaseListService, CipiServerSecretsService, and related config/cipi.php keys (mysql_list, vault paths, cipi_mysql_list connection registration) introduced in intermediate iterations.

Version 1.6.5

03 Apr 21:12

Choose a tag to compare

[1.6.5] - 2026-04-03

Fixed

  • GET /api/dbs / cipi-cli db list: Listing no longer uses the db list background job or sudo cipi, which could fail (exit code, sudo, CLI environment) even when MySQL was healthy. The endpoint now reads database names and approximate sizes from MySQL/MariaDB using the Laravel DB connection (CIPI_MYSQL_LIST_CONNECTION, default mysql), matching how GET /api/apps reads apps.json.

Added

  • CipiMysqlDatabaseListService and config keys mysql_list_connection, mysql_system_databases in config/cipi.php.
  • MysqlDatabaseListingUnavailableException: returned as JSON 503 when the configured connection is not mysql/mariadb or SHOW DATABASES fails.

Changed

  • MCP DbList: Returns the list inline (no job polling).
  • CipiOutputParser::parseDbList: Completed jobs with an empty list now return databases: [] instead of null.
  • OpenAPI: GET /api/dbs documents 200 + DbListResponse, 503, and info.version 1.6.5.

Version 1.6.4

03 Apr 21:06

Choose a tag to compare

[1.6.4] - 2026-04-03

Fixed

  • Database CLI jobs: CipiCliService now allows all db command prefixes (db list, db create, db delete, db backup, db restore, db password). They were missing from the sudo whitelist, so queued jobs failed immediately with “Command not allowed” and clients (including cipi-cli db list) saw job failed even when Cipi on the server was working.

Added

  • DisallowedCipiCommandException: thrown when application code tries to queue a Cipi CLI command whose prefix is not in the whitelist, so misconfiguration surfaces at dispatch time instead of as a perpetually failing job.
  • CipiJobService::dispatch() validates the command string with CipiCliService::commandIsPermitted() before creating the job record and dispatching RunCipiCommand.

Changed

  • CipiCliService: ALLOWED_COMMANDS is a documented public const; deploy matching uses the prefix deploy (with a trailing space) so it does not collide with other commands starting with deploy.
  • CipiApiServiceProvider: registers a renderable handler so DisallowedCipiCommandException returns JSON 500 with an error message for api/* and JSON requests.
  • OpenAPI / Swagger: public/api-docs/openapi.json info.version set to 1.6.4 (aligned with this release).

Version 1.6.3

03 Apr 20:43

Choose a tag to compare

[1.6.3] - 2026-04-03

Changed

  • OpenAPI / Swagger: public/api-docs/openapi.json (served at /docs) now documents the database REST API (/dbs, backup, restore, password), request bodies, path parameters, and job type / JobResultDb* shapes for GET /api/jobs/{id}. Spec info.version set to 1.6.3.
  • README: Swagger section notes what the OpenAPI spec covers (including databases and job result types).

Version 1.6.2

03 Apr 07:04

Choose a tag to compare

[1.6.2] - 2026-04-03

Fixed

  • Auth redirect without web login: CipiApiServiceProvider registers Authenticate::redirectUsing so installs without a named login route no longer throw Route [login] not defined when Sanctum rejects a request. Unauthenticated api/* and JSON requests get a normal 401 flow; browser requests fall back to / (welcome) when no login route exists.

Version 1.6.1

20 Mar 17:14

Choose a tag to compare

[1.6.1] - 2026-03-20

Changed

  • Custom apps without Git (SFTP-only): POST /api/apps and MCP AppCreate align with Cipi 4.4.4+: for custom: true, repository is optional. Omit repository and branch to provision a custom app for SFTP upload to ~/htdocs with no Git deploy. Laravel (non-custom) apps still require repository.
  • OpenAPI: AppCreateRequest documents custom and docroot; repository is no longer globally required in the schema (runtime validation enforces it for Laravel apps).

Version 1.6.0

18 Mar 23:47

Choose a tag to compare

[1.6.0] - 2026-03-19

Added

  • Custom app support: POST /api/apps now accepts custom (boolean) and docroot (string) parameters to create non-Laravel apps with classic deploy (no zero-downtime)
  • Database management APIs:
    • GET /api/dbs — list all databases (dbs-view)
    • POST /api/dbs — create a database (dbs-create)
    • DELETE /api/dbs/{name} — delete a database (dbs-delete)
    • POST /api/dbs/{name}/backup — backup a database (dbs-manage)
    • POST /api/dbs/{name}/restore — restore from backup (dbs-manage)
    • POST /api/dbs/{name}/password — regenerate password (dbs-manage)
  • MCP tools: DbList, DbCreate, DbDelete, DbBackup, DbRestore, DbPassword
  • Output parsers for all database CLI commands
  • New token abilities: dbs-view, dbs-create, dbs-delete, dbs-manage

Version 1.5.2

16 Mar 20:15

Choose a tag to compare

[1.5.2] - 2026-03-16

Changed

  • Package renamed to cipi/api (from andreapollastri/cipi-api)
  • README: updated installation command and MCP tools table formatting