Skip to content

PostgreSQL Extensions

Fluxbase provides a management layer for PostgreSQL extensions, letting you list, install, and remove extensions through the admin API instead of running raw SQL.

Extensions are managed via the platform.available_extensions catalog and platform.enabled_extensions tracking table. When you enable an extension, Fluxbase:

  • Validates the extension exists in the catalog
  • Resolves dependencies automatically (e.g., enabling pgvector also enables cube if needed)
  • Executes CREATE EXTENSION IF NOT EXISTS with the appropriate permissions
  • Records the operation in the tracking table

Core extensions (required by Fluxbase) are enabled automatically on startup and cannot be disabled.

All extension endpoints require authentication with admin, instance_admin, or tenant_admin role.

MethodEndpointDescription
GET/api/v1/admin/extensionsList all extensions
GET/api/v1/admin/extensions/:nameGet extension status
POST/api/v1/admin/extensions/:name/enableEnable an extension
POST/api/v1/admin/extensions/:name/disableDisable an extension
POST/api/v1/admin/extensions/syncSync from PostgreSQL
Terminal window
curl -H "Authorization: Bearer <service-role-key>" \
http://localhost:8080/api/v1/admin/extensions

Response includes all available extensions with their status, category, and version info:

{
"extensions": [
{
"name": "vector",
"display_name": "pgvector",
"description": "Vector data type and similarity search",
"category": "ai_ml",
"is_core": false,
"is_enabled": true,
"is_installed": true,
"installed_version": "0.7.0"
}
],
"categories": [
{ "id": "ai_ml", "name": "AI & Machine Learning", "count": 1 }
]
}
Terminal window
curl -H "Authorization: Bearer <service-role-key>" \
http://localhost:8080/api/v1/admin/extensions/vector
Terminal window
curl -X POST \
-H "Authorization: Bearer <service-role-key>" \
-H "Content-Type: application/json" \
-d '{"schema": "public"}' \
http://localhost:8080/api/v1/admin/extensions/vector/enable

The schema field is optional (defaults to public).

Terminal window
curl -X POST \
-H "Authorization: Bearer <service-role-key>" \
http://localhost:8080/api/v1/admin/extensions/vector/disable

Core extensions cannot be disabled. Disabling uses DROP EXTENSION ... CASCADE.

Refresh the extension catalog from PostgreSQL:

Terminal window
curl -X POST \
-H "Authorization: Bearer <service-role-key>" \
http://localhost:8080/api/v1/admin/extensions/sync

Extensions are scoped per-database. For tenants with a separate database, extensions are managed independently. Tenant admins can enable/disable extensions for their own tenant database, while instance admins can manage extensions across all databases.

Category IDDisplay Name
coreCore
ai_mlAI & Machine Learning
geospatialGeospatial
data_typesData Types
indexingIndexing
text_searchText Search
performancePerformance
monitoringMonitoring
utilitiesUtilities
foreign_dataForeign Data
triggersTriggers