AI i narzędzia
Management API
REST API do automatyzacji: organizacje i projekty, uwierzytelnianie tokenem osobistym.
Management API pozwala zarządzać platformą HostBase z poziomu skryptów, CI/CD czy własnych narzędzi. Nie myl go z API danych projektu (/rest/v1) — to API służy do zarządzania samymi projektami.
Uwierzytelnianie
Utwórz osobisty token dostępu w Konto → Tokeny dostępu i przekazuj go w nagłówku:
Authorization: Bearer hb_pat_xxxxxxxxxxxxxxxxxxxx
Adres bazowy: https://host.ulewicz.space/api/v1. Odpowiedzi są w formacie JSON.
GET /api/v1/organizations
Lista organizacji użytkownika.
curl https://host.ulewicz.space/api/v1/organizations \
-H "Authorization: Bearer $HOSTBASE_TOKEN"
[
{ "id": "org_...", "name": "Acme", "slug": "acme", "plan": "pro", "role": "owner" }
]
GET /api/v1/projects
Lista projektów ze wszystkich organizacji użytkownika.
curl https://host.ulewicz.space/api/v1/projects \
-H "Authorization: Bearer $HOSTBASE_TOKEN"
POST /api/v1/projects
Tworzy nowy projekt.
| Pole | Typ | Opis |
|---|---|---|
name | string | Nazwa projektu (wymagane) |
organization_slug | string | Slug organizacji (wymagane) |
region | string | pl-waw-1 (Warszawa). Pozostałe regiony (eu-central-1, eu-north-1, eu-west-1, us-east-1) — wkrótce, obecnie zwracają 422. |
compute_size | string | nano (domyślnie), micro, small, medium, large, xl |
curl -X POST https://host.ulewicz.space/api/v1/projects \
-H "Authorization: Bearer $HOSTBASE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"sklep-prod","organization_slug":"acme","region":"pl-waw-1","compute_size":"small"}'
{
"ref": "abcdefghijklmnopqrst",
"name": "sklep-prod",
"status": "provisioning",
"region": "pl-waw-1",
"api_url": "https://abcdefghijklmnopqrst.host.ulewicz.space"
}
GET /api/v1/projects/{ref}
Szczegóły projektu, w tym status i klucz anon.
curl https://host.ulewicz.space/api/v1/projects/abcdefghijklmnopqrst \
-H "Authorization: Bearer $HOSTBASE_TOKEN"
GET /api/v1/projects/{ref}/api-keys
Klucze anon i service_role projektu.
POST /api/v1/projects/{ref}/database/query
Wykonuje zapytanie SQL na bazie projektu (rola owner, admin lub developer). Projekt musi mieć status active.
curl -X POST https://host.ulewicz.space/api/v1/projects/abcdefghijklmnopqrst/database/query \
-H "Authorization: Bearer $HOSTBASE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query":"select now() as czas, version()"}'
{
"rows": [{ "czas": "2026-10-15T12:00:00.000Z", "version": "PostgreSQL 17.6 ..." }],
"duration_ms": 42
}
Edge Functions
Zarządzanie funkcjami projektu. Wdrażanie i usuwanie wymaga roli owner, admin lub developer.
| Metoda i ścieżka | Opis |
|---|---|
GET /api/v1/projects/{ref}/functions | Lista funkcji (nazwa, wersja, verify_jwt, url). |
POST /api/v1/projects/{ref}/functions | Tworzy nową funkcję: {"name", "code" | "files", "verify_jwt"?}. 409, jeśli istnieje. |
GET /api/v1/projects/{ref}/functions/{name} | Kod źródłowy (files) i konfiguracja. |
PUT /api/v1/projects/{ref}/functions/{name} | Wdraża (tworzy lub aktualizuje): {"code" | "files", "verify_jwt"?}. Zwraca version. |
DELETE /api/v1/projects/{ref}/functions/{name} | Usuwa funkcję. |
GET /api/v1/projects/{ref}/secrets | Nazwy sekretów (bez wartości). |
GET /api/v1/projects/{ref}/functions/{name}/versions | Historia wdrożeń: {"current_version", "versions": [...]}. |
POST /api/v1/projects/{ref}/functions/{name}/versions | Przywrócenie wersji: {"rollback_to": 3}. Zwraca nową version. |
PUT /api/v1/projects/{ref}/secrets | Ustawia sekrety: {"secrets": {"NAZWA": "wartość"}} albo sama mapa {"NAZWA": "wartość"} (scalane). |
DELETE /api/v1/projects/{ref}/secrets?name=NAZWA | Usuwa sekret. |
curl -X PUT https://host.ulewicz.space/api/v1/projects/abcdefghijklmnopqrst/functions/hello \
-H "Authorization: Bearer $HOSTBASE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"files":[{"path":"index.ts","content":"Deno.serve(() => new Response(\"ok\"))"}]}'
{ "name": "hello", "version": 3, "url": "https://abcdefghijklmnopqrst.host.ulewicz.space/functions/v1/hello" }
Połączenie z bazą
Bezpośredni host bazy ma postać db-<ref>.host.ulewicz.space, port 5432. TLS jest wymagany (sslmode=require) — routing do właściwej bazy odbywa się po SNI.
psql "postgresql://postgres:HASLO@db-abcdefghijklmnopqrst.host.ulewicz.space:5432/postgres?sslmode=require"
Kody błędów
| Kod | Znaczenie |
|---|---|
| 400 | Niepoprawne dane wejściowe lub błąd SQL |
| 401 | Brak lub nieprawidłowy token |
| 402 | Przekroczony limit planu |
| 403 | Brak uprawnień |
| 404 | Zasób nie istnieje lub nie masz do niego dostępu |
| 409 | Projekt w niewłaściwym stanie (np. nieaktywny) lub zasób już istnieje |
| 413 | Kod funkcji przekracza 1 MB |
| 422 | Region niedostępny |
| 503 | Serwer bazodanowy chwilowo niedostępny lub brak pojemności |