Lập trình viên / Tra cứu
REST quản lý Database và import
Dành cho backend/CLI của chủ Project, tách khỏi runtime Data API của người dùng ứng dụng.
Base và quyền
Base /api/v1/cloud/projects/PROJECT_UUID/database. Authorization: Bearer wpc_... với scope database:read, database:write, database:data:read, database:data:write, database:backup phù hợp. Key cần quyền trên đúng account/project. Không đưa key quản lý vào frontend. Dashboard dùng session+CSRF; staff dùng reason và quyền riêng.
Cấu trúc và thao tác
| Method / suffix | Hành động |
|---|---|
| GET / | Overview, definition/revision, quota và write_token nếu đủ quyền |
| POST / | Kích hoạt, Idempotency-Key UUID |
| DELETE / | Xóa theo quy trình xác nhận; không xóa trực tiếp PostgreSQL |
| PATCH /schema | {revision,definition,...}: tạo operation có Idempotency-Key |
| POST /import/schema-preview | {revision,format:"sql"|"json",source}: không ghi; trả definition/tables/columns |
| GET /types | TypeScript types của schema |
| POST /simulate | Mô phỏng policy |
| GET /operations | Tiến độ/lỗi thao tác |
| POST /operations/ID/cancel | Hủy khi operation cho phép |
Dữ liệu
| Method / suffix | Hành động |
|---|---|
| POST /data/TABLE/select | Đọc quản lý với revision; quyền riêng, giới hạn riêng |
| POST /data/TABLE/export | Xuất dữ liệu có giới hạn/paging |
| POST /data/TABLE/insert | {revision,write_token,values} |
| POST /data/TABLE/update | {revision,write_token,before,values} chống ghi đè dòng đã đổi |
| POST /data/TABLE/delete | {revision,write_token,before} |
| POST /data/TABLE/import-preview | {revision,format:"csv"|"json",rows:[...]} → rows đã kiểm tra/chuẩn hóa |
| POST /data/TABLE/import | {revision,write_token,rows:[...]} + Idempotency-Key UUID; atomic theo lô |
Receipt và giới hạn
Lấy write_token mới từ overview trước khi bắt đầu. Với mutation, giữ đúng request/body/write_token/Idempotency-Key khi mất response. Thay nội dung phải dùng key mới sau khi biết trạng thái lô cũ. Receipt không phải lịch sử vĩnh viễn; hết hạn cần đối soát.
Management đọc/ghi dùng budget vận hành riêng, không phải cách vượt quota Data API cho sản phẩm. Import tối đa 100 dòng/request (hoặc config thấp hơn), 256 KiB request; chịu quota dung lượng thật. Preview kiểm tra kiểu; unique/FK kiểm tra lúc commit.
Backup và keys
GET/POST /backups; PATCH /backups/settings; DELETE /backups/ID (xem metadata qua GET /backups); POST /backups/ID/retry hoặc /restore. GET /generations; DELETE /generations/ID; POST /generations/ID/rollback. Các thao tác recovery yêu cầu điều kiện/xác nhận riêng, xem UI trước khi tự động hóa. GET/POST /keys; DELETE /keys/ID; secret chỉ được hiển thị một lần.
Backup cần database:backup cùng database:read. Recovery còn cần database:write. Chỉ chọn scopes thao tác thực sự cần.