2.6 KiB
Aether API V3 Frontend Integration Guide (Svelte/TypeScript)
This guide defines the standards for interacting with the Aether API V3 CRUD and Action endpoints.
1. Authentication and Security (Mandatory)
V3 architecture enforces strict Multi-Tenant Isolation and Machine Authorization. Requests require two levels of validation.
A. The "Entry Ticket" (API Key)
Mandatory for all requests. identifies the application or client.
- Header:
x-aether-api-key: <your_app_key> - Status Code:
403 Forbiddenif missing or invalid.
B. The "Visa" (Account Context)
Required for any non-public data (Journals, Badges, Users, etc.).
- Standard Access: Provide the
x-account-id(the random string ID).- Header:
x-account-id: <account_id_random>
- Header:
- Administrative Bypass: For authorized scripts needing global access.
- Header:
x-no-account-id: bypass
- Header:
- Token Access: Provide a JWT in the query string.
- Query Param:
?jwt=<token>
- Query Param:
Caution
UNSUPPORTED HEADERS: The header
x-aether-api-tokenis NOT recognized by the V3 API. If you send it, the backend will treat you as a guest and block access to private data.
2. Bootstrapping (The FQDN Handshake)
When the frontend first loads and doesn't know the account_id, it performs a "handshake" using its domain name.
Endpoint: POST /v3/crud/site_domain/search
Body:
{
"and": [
{ "field": "fqdn", "op": "eq", "value": "demo.oneskyit.com" }
]
}
Results:
- Returns 200 + a list containing the
account_idandsite_idrandom strings. - ** ڈیزائن Choice:** If the domain is not found, it returns 200 OK with an empty list
[]. It is NOT a 404.
3. Standard CRUD Patterns
A. GET by ID
Used when the ID is known.
- Endpoint:
GET /v3/crud/{obj_type}/{id_random} - Security: Returns 403 if the record doesn't belong to your
x-account-id.
B. POST Search
The primary way to retrieve data.
- Endpoint:
POST /v3/crud/{obj_type}/search - Security: Automatically filters results to only show records belonging to your
x-account-id. If no account context is provided, it will return 0 records for private objects.
4. Troubleshooting 403 Forbidden
If you receive a 403 on a valid ID:
- Verify
x-aether-api-keyis correct. - Ensure you are sending
x-account-idand NOTx-aether-api-token. - Verify the record actually belongs to the account ID you are sending.
- Check if the object is marked
public_read: Truein the registry. (Posts and Archive Content allow guest access; Journals and Badges do not).