Save notes and documentation updates

This commit is contained in:
Scott Idem
2026-01-06 19:36:58 -05:00
parent 836ed97d07
commit 13620a63d0
2 changed files with 104 additions and 1 deletions

View File

@@ -295,3 +295,53 @@ export async function get_ae_obj_li_for_obj_id_crud_v2({
}
}
```
```ts
/**
* Aether V3 Search (POST)
* Standardized search with recursive logical grouping and wildcard support.
*/
export async function search_ae_obj_v3({
api_cfg,
obj_type,
search_query, // Example: { q: "%", and: [{ field: "enable", op: "eq", value: true }] }
view = 'default',
limit = 100,
offset = 0,
log_lvl = 0
}) {
const endpoint = `/v3/crud/${obj_type}/search`;
const params = { view, limit, offset };
return await post_object({
api_cfg,
endpoint,
params,
data: search_query,
log_lvl
});
}
/**
* Aether V3 Schema Discovery (GET)
* Returns database and Pydantic model metadata for an object.
*/
export async function get_obj_schema_v3({ api_cfg, obj_type, view = 'default' }) {
const endpoint = `/v3/crud/${obj_type}/schema`;
const params = { view };
return await get_object({ api_cfg, endpoint, params });
}
/**
* Initial Site/Domain Resolution (Legacy V1/V2 Public Route)
* Used to bootstrap the app context (resolve account_id) from the current FQDN.
*/
export async function resolve_site_context({ api_cfg, fqdn }) {
// This specific path bypasses X-Account-ID requirement
const endpoint = `/crud/site/domain/${fqdn}`;
const params = { use_alt_table: true, use_alt_base: true };
return await get_object({ api_cfg, endpoint, params });
}
```

View File

@@ -149,7 +149,60 @@ export async function delete_ae_obj_v3({ api_cfg, obj_type, obj_id }) {
---
## 4. Authentication in V3
## 4. Specialized & Context Endpoints
### A. Initial Context Resolution (FQDN)
**Path**: `GET /crud/site/domain/{fqdn}?use_alt_table=true&use_alt_base=true`
This is a **critical public endpoint** used by the Svelte frontend during initial load.
- **Requirement**: Does NOT require `X-Account-ID` header (it resolves it).
- **Purpose**: Returns the `account_id` and site configuration associated with the current URL.
- **Backend**: Currently routed via legacy V1/V2 `api_crud.py` for maximum compatibility.
```ts
// Example: resolve context from current location
const fqdn = window.location.host;
const endpoint = `/crud/site/domain/${fqdn}`;
const context = await get_object({
api_cfg,
endpoint,
params: { use_alt_table: true, use_alt_base: true }
});
// result includes account_id and account_id_random
```
### B. Schema Discovery
**Path**: `GET /v3/crud/{obj_type}/schema`
Used for developer tools or dynamic UI builders to understand the structure of an AE object. Returns:
- Database column names and SQL types.
- Pydantic model field names, aliases, and TypeScript-compatible types.
```ts
// GET /v3/crud/account/schema
export async function get_obj_schema_v3({ api_cfg, obj_type }) {
const endpoint = `/v3/crud/${obj_type}/schema`;
return await get_object({ api_cfg, endpoint });
}
```
---
## 5. Advanced Search Logic
### A. Standardized Global Search (`q`)
Use the `q` property in your search body for a keyword search.
- **Wildcard Support**: Setting `q: "%"` will bypass all text filtering and return all records (respecting only logical filters like `enable`).
- **Fallback**: If the table lacks a `default_qry_str` column, the API automatically performs a `LIKE` search across all searchable fields.
```json
{
"q": "%",
"and": [{ "field": "enable", "op": "eq", "value": true }]
}
```
## 6. Authentication in V3
V3 supports multiple authentication methods. The backend resolves these automatically.