@zeyos/client 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +31 -1
- package/agents/README.md +2 -0
- package/agents/shared/zeyos-entity-map.md +5 -1
- package/agents/shared/zeyos-entity-reference.md +89 -33
- package/docs/03-cli/02-commands.md +28 -0
- package/docs/06-okf/01-overview.md +70 -0
- package/docs/06-okf/02-producing-and-consuming.md +46 -0
- package/docs/06-okf/03-keeping-fresh.md +53 -0
- package/docs/06-okf/04-loops.md +58 -0
- package/docs/06-okf/_category_.json +9 -0
- package/okf/concepts/counting-and-sums.md +10 -0
- package/okf/concepts/dates-unix-seconds.md +12 -0
- package/okf/concepts/enums.md +14 -0
- package/okf/concepts/filters-vs-filter.md +14 -0
- package/okf/concepts/index.md +8 -0
- package/okf/concepts/operationid-vocabulary.md +17 -0
- package/okf/concepts/visibility-column.md +13 -0
- package/okf/entities/accounts.md +82 -0
- package/okf/entities/actionsteps.md +84 -0
- package/okf/entities/addresses.md +50 -0
- package/okf/entities/applicationassets.md +43 -0
- package/okf/entities/applications.md +62 -0
- package/okf/entities/appointments.md +79 -0
- package/okf/entities/associations.md +41 -0
- package/okf/entities/binfiles.md +32 -0
- package/okf/entities/campaigns.md +66 -0
- package/okf/entities/categories.md +55 -0
- package/okf/entities/channels.md +54 -0
- package/okf/entities/comments.md +44 -0
- package/okf/entities/components.md +46 -0
- package/okf/entities/contacts.md +96 -0
- package/okf/entities/contacts2contacts.md +42 -0
- package/okf/entities/contracts.md +83 -0
- package/okf/entities/couponcodes.md +58 -0
- package/okf/entities/coupons.md +69 -0
- package/okf/entities/customfields.md +59 -0
- package/okf/entities/davservers.md +74 -0
- package/okf/entities/devices.md +65 -0
- package/okf/entities/documents.md +76 -0
- package/okf/entities/dunning.md +82 -0
- package/okf/entities/dunning2transactions.md +46 -0
- package/okf/entities/entities2channels.md +42 -0
- package/okf/entities/events.md +57 -0
- package/okf/entities/feedservers.md +67 -0
- package/okf/entities/files.md +50 -0
- package/okf/entities/follows.md +40 -0
- package/okf/entities/forks.md +54 -0
- package/okf/entities/groups.md +48 -0
- package/okf/entities/groups2users.md +44 -0
- package/okf/entities/index.md +93 -0
- package/okf/entities/invitations.md +53 -0
- package/okf/entities/items.md +95 -0
- package/okf/entities/ledgers.md +56 -0
- package/okf/entities/likes.md +40 -0
- package/okf/entities/links.md +70 -0
- package/okf/entities/mailinglists.md +67 -0
- package/okf/entities/mailingrecipients.md +45 -0
- package/okf/entities/mailservers.md +77 -0
- package/okf/entities/messagereads.md +40 -0
- package/okf/entities/messages.md +104 -0
- package/okf/entities/notes.md +73 -0
- package/okf/entities/objects.md +70 -0
- package/okf/entities/opportunities.md +87 -0
- package/okf/entities/participants.md +52 -0
- package/okf/entities/payments.md +76 -0
- package/okf/entities/permissions.md +46 -0
- package/okf/entities/pricelists.md +70 -0
- package/okf/entities/pricelists2accounts.md +46 -0
- package/okf/entities/prices.md +49 -0
- package/okf/entities/projects.md +72 -0
- package/okf/entities/records.md +75 -0
- package/okf/entities/relateditems.md +43 -0
- package/okf/entities/resources.md +55 -0
- package/okf/entities/services.md +64 -0
- package/okf/entities/stocktransactions.md +72 -0
- package/okf/entities/storages.md +56 -0
- package/okf/entities/suppliers.md +51 -0
- package/okf/entities/tasks.md +86 -0
- package/okf/entities/tickets.md +86 -0
- package/okf/entities/transactions.md +118 -0
- package/okf/entities/users.md +66 -0
- package/okf/entities/weblets.md +66 -0
- package/okf/index.md +11 -0
- package/okf/log.md +4 -0
- package/okf/metrics/cash-received.md +10 -0
- package/okf/metrics/index.md +6 -0
- package/okf/metrics/invoiced-net-revenue.md +16 -0
- package/okf/metrics/open-customers.md +14 -0
- package/okf/metrics/overdue-receivables.md +12 -0
- package/okf/playbooks/customer-360.md +12 -0
- package/okf/playbooks/index.md +5 -0
- package/okf/playbooks/revenue-this-year.md +19 -0
- package/okf/playbooks/ticket-work-packet.md +11 -0
- package/package.json +9 -2
- package/scripts/data/okf-curation.mjs +258 -0
- package/scripts/generate-client.mjs +4 -275
- package/scripts/generate-okf.mjs +241 -0
- package/scripts/lib/okf.mjs +272 -0
- package/scripts/lib/spec-model.mjs +325 -0
- package/src/index.js +4 -0
- package/src/runtime/okf.js +237 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Reference
|
|
3
|
+
title: operationId ≠ table noun
|
|
4
|
+
description: "REST operationIds are CamelCase compounds; several diverge from the dbref noun."
|
|
5
|
+
tags: [query]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The dbref table noun (also the REST URL path segment) is **not** the `@zeyos/client` operationId. Most follow `list<Plural>`/`get<Singular>`/… but several diverge:
|
|
9
|
+
|
|
10
|
+
- `dunning` → `listDunningNotices` / `getDunningNotice`
|
|
11
|
+
- `dunning2transactions` → `listDunningToTransactions`
|
|
12
|
+
- `pricelists` → `listPriceLists`; `pricelists2accounts` → `listPriceListsToAccounts`
|
|
13
|
+
- `mailinglists` → `listMailingLists`; `actionsteps` → `listActionSteps`
|
|
14
|
+
- `categories` → `listCategorys` (sic) but `getCategory`
|
|
15
|
+
- `davservers` → `listDAVServers`; `binfiles` → `listBinFiles` (list-only)
|
|
16
|
+
|
|
17
|
+
Each entity concept's **Operations** section lists its real operationIds (read straight from `api.json`). `client.schema.validate()` suggests the closest operationId for an unknown name.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Reference
|
|
3
|
+
title: visibility: 0 (only where the column exists)
|
|
4
|
+
description: "visibility:0 hides archived rows — but only resources that have the column."
|
|
5
|
+
tags: [query]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
`visibility = 0` excludes archived/deleted rows, but **only some resources have a `visibility` column**:
|
|
9
|
+
|
|
10
|
+
- Have it: [tickets](/entities/tickets.md), [accounts](/entities/accounts.md), [items](/entities/items.md).
|
|
11
|
+
- Do **not** have it: [transactions](/entities/transactions.md) — adding `"visibility":0` there returns an opaque **HTTP 400**.
|
|
12
|
+
|
|
13
|
+
More generally, filtering on any column a resource lacks 400s with no field name. Include `visibility:0` on resources that have it unless the user wants archived records; `zeyos describe <resource>` tells you whether the column exists.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ZeyOS Entity
|
|
3
|
+
title: Accounts
|
|
4
|
+
description: Customer, supplier, prospect, or employee master records.
|
|
5
|
+
resource: zeyos://api/accounts
|
|
6
|
+
tags: [crm, generated]
|
|
7
|
+
api_backed: true
|
|
8
|
+
list_operation: listAccounts
|
|
9
|
+
visibility_column: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- okf:generated:start — rewritten by scripts/generate-okf.mjs; do not edit by hand -->
|
|
13
|
+
# Schema
|
|
14
|
+
|
|
15
|
+
| Column | Type | Nullable | Default | Indexed | FK |
|
|
16
|
+
|---|---|---|---|---|---|
|
|
17
|
+
| `ID` | integer | no | — | yes | — |
|
|
18
|
+
| `fork` | integer | yes | — | yes | [forks](/entities/forks.md) |
|
|
19
|
+
| `ownergroup` | integer | yes | — | yes | [groups](/entities/groups.md) |
|
|
20
|
+
| `creator` | integer | yes | — | — | — |
|
|
21
|
+
| `assigneduser` | integer | yes | — | yes | [users](/entities/users.md) |
|
|
22
|
+
| `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
23
|
+
| `lastmodified` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
24
|
+
| `contact` | integer | yes | — | yes | [contacts](/entities/contacts.md) |
|
|
25
|
+
| `visibility` | smallint | no | `0` | — | — |
|
|
26
|
+
| `lastname` | text | no | `''` | yes | — |
|
|
27
|
+
| `firstname` | text | no | `''` | yes | — |
|
|
28
|
+
| `type` | smallint | no | `0` | — | — |
|
|
29
|
+
| `customernum` | text | no | `''` | yes | — |
|
|
30
|
+
| `suppliernum` | text | no | `''` | yes | — |
|
|
31
|
+
| `taxid` | text | no | `''` | — | — |
|
|
32
|
+
| `currency` | character varying(3) | no | — | — | — |
|
|
33
|
+
| `locked` | smallint | no | `0` | — | — |
|
|
34
|
+
| `excludetax` | smallint | no | `0` | — | — |
|
|
35
|
+
| `description` | text | no | `''` | — | — |
|
|
36
|
+
|
|
37
|
+
# Foreign Keys
|
|
38
|
+
|
|
39
|
+
- `fork` → [forks](/entities/forks.md) (`forks.ID`)
|
|
40
|
+
- `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
|
|
41
|
+
- `assigneduser` → [users](/entities/users.md) (`users.ID`)
|
|
42
|
+
- `contact` → [contacts](/entities/contacts.md) (`contacts.ID`)
|
|
43
|
+
|
|
44
|
+
# Enums
|
|
45
|
+
|
|
46
|
+
### `visibility`
|
|
47
|
+
|
|
48
|
+
`0` = REGULAR · `1` = ARCHIVED · `2` = DELETED
|
|
49
|
+
|
|
50
|
+
### `type`
|
|
51
|
+
|
|
52
|
+
`0` = PROSPECT · `1` = CUSTOMER · `2` = SUPPLIER · `3` = CUSTOMERANDSUPPLIER · `4` = COMPETITOR · `5` = EMPLOYEE
|
|
53
|
+
|
|
54
|
+
# Indexes
|
|
55
|
+
|
|
56
|
+
- `fk_accounts_assigneduser` — gin, partial on `assigneduser`
|
|
57
|
+
- `fk_accounts_contact` — btree, partial on `contact`
|
|
58
|
+
- `fk_accounts_fork` — gin, partial on `fork`
|
|
59
|
+
- `fk_accounts_ownergroup` — gin on `ownergroup`
|
|
60
|
+
- `i_accounts_lastname_firstname` — btree on `lastname, firstname`
|
|
61
|
+
- `i_accounts_nofork` — gin, partial on `fork`
|
|
62
|
+
- `i_accounts_noowner` — gin, partial on `ownergroup`
|
|
63
|
+
- `s_accounts_customernum` — gin, partial on `customernum`
|
|
64
|
+
- `s_accounts_firstname` — gin, partial on `firstname`
|
|
65
|
+
- `s_accounts_lastname` — gin, partial on `lastname`
|
|
66
|
+
- `s_accounts_suppliernum` — gin, partial on `suppliernum`
|
|
67
|
+
|
|
68
|
+
> Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
|
|
69
|
+
|
|
70
|
+
# Operations
|
|
71
|
+
|
|
72
|
+
- list: `listAccounts`
|
|
73
|
+
- get: `getAccount`
|
|
74
|
+
- create: `createAccount`
|
|
75
|
+
- update: `updateAccount`
|
|
76
|
+
- delete: `deleteAccount`
|
|
77
|
+
- exists: `existsAccount`
|
|
78
|
+
<!-- okf:generated:end -->
|
|
79
|
+
|
|
80
|
+
# Notes
|
|
81
|
+
|
|
82
|
+
No `name` column — use `lastname` + `firstname`. `type`: 0=PROSPECT,1=CUSTOMER,2=SUPPLIER,3=CUSTOMERANDSUPPLIER,4=COMPETITOR,5=EMPLOYEE. `createAccount` REQUIRES `currency` (NOT NULL, no default) or it 500s.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ZeyOS Entity
|
|
3
|
+
title: Action Steps
|
|
4
|
+
description: Cross-record follow-up work items with assignee, due date, status, and effort.
|
|
5
|
+
resource: zeyos://api/actionsteps
|
|
6
|
+
tags: [work, generated]
|
|
7
|
+
api_backed: true
|
|
8
|
+
list_operation: listActionSteps
|
|
9
|
+
visibility_column: false
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- okf:generated:start — rewritten by scripts/generate-okf.mjs; do not edit by hand -->
|
|
13
|
+
# Schema
|
|
14
|
+
|
|
15
|
+
| Column | Type | Nullable | Default | Indexed | FK |
|
|
16
|
+
|---|---|---|---|---|---|
|
|
17
|
+
| `ID` | integer | no | — | yes | — |
|
|
18
|
+
| `fork` | integer | yes | — | yes | [forks](/entities/forks.md) |
|
|
19
|
+
| `owneruser` | integer | yes | — | yes | [users](/entities/users.md) |
|
|
20
|
+
| `ownergroup` | integer | yes | — | yes | [groups](/entities/groups.md) |
|
|
21
|
+
| `creator` | integer | yes | — | — | — |
|
|
22
|
+
| `assigneduser` | integer | yes | — | yes | [users](/entities/users.md) |
|
|
23
|
+
| `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
24
|
+
| `lastmodified` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
25
|
+
| `task` | integer | yes | — | yes | [tasks](/entities/tasks.md) |
|
|
26
|
+
| `ticket` | integer | yes | — | yes | [tickets](/entities/tickets.md) |
|
|
27
|
+
| `account` | integer | yes | — | yes | [accounts](/entities/accounts.md) |
|
|
28
|
+
| `transaction` | integer | yes | — | yes | [transactions](/entities/transactions.md) |
|
|
29
|
+
| `name` | text | no | — | yes | — |
|
|
30
|
+
| `actionnum` | text | no | `''` | yes | — |
|
|
31
|
+
| `date` | bigint | no | `date_part('epoch', now())` | yes | — |
|
|
32
|
+
| `duedate` | bigint | yes | — | — | — |
|
|
33
|
+
| `status` | smallint | no | `0` | — | — |
|
|
34
|
+
| `effort` | integer | no | `0` | — | — |
|
|
35
|
+
| `description` | text | no | `''` | — | — |
|
|
36
|
+
|
|
37
|
+
# Foreign Keys
|
|
38
|
+
|
|
39
|
+
- `fork` → [forks](/entities/forks.md) (`forks.ID`)
|
|
40
|
+
- `owneruser` → [users](/entities/users.md) (`users.ID`)
|
|
41
|
+
- `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
|
|
42
|
+
- `assigneduser` → [users](/entities/users.md) (`users.ID`)
|
|
43
|
+
- `task` → [tasks](/entities/tasks.md) (`tasks.ID`)
|
|
44
|
+
- `ticket` → [tickets](/entities/tickets.md) (`tickets.ID`)
|
|
45
|
+
- `account` → [accounts](/entities/accounts.md) (`accounts.ID`)
|
|
46
|
+
- `transaction` → [transactions](/entities/transactions.md) (`transactions.ID`)
|
|
47
|
+
|
|
48
|
+
# Enums
|
|
49
|
+
|
|
50
|
+
### `status`
|
|
51
|
+
|
|
52
|
+
`0` = DRAFT · `1` = COMPLETED · `2` = CANCELLED · `3` = BOOKED
|
|
53
|
+
|
|
54
|
+
# Indexes
|
|
55
|
+
|
|
56
|
+
- `fk_actionsteps_account` — btree, partial on `account`
|
|
57
|
+
- `fk_actionsteps_assigneduser` — gin, partial on `assigneduser`
|
|
58
|
+
- `fk_actionsteps_fork` — gin, partial on `fork`
|
|
59
|
+
- `fk_actionsteps_ownergroup` — gin, partial on `ownergroup`
|
|
60
|
+
- `fk_actionsteps_owneruser` — gin, partial on `owneruser`
|
|
61
|
+
- `fk_actionsteps_task` — btree, partial on `task`
|
|
62
|
+
- `fk_actionsteps_ticket` — btree, partial on `ticket`
|
|
63
|
+
- `fk_actionsteps_transaction` — btree, partial on `transaction`
|
|
64
|
+
- `i_actionsteps_date` — btree on `date`
|
|
65
|
+
- `i_actionsteps_nofork` — gin, partial on `fork`
|
|
66
|
+
- `i_actionsteps_noowner` — gin, partial on `ownergroup`
|
|
67
|
+
- `s_actionsteps_actionnum` — gin, partial on `actionnum`
|
|
68
|
+
- `s_actionsteps_name` — gin on `name`
|
|
69
|
+
|
|
70
|
+
> Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
|
|
71
|
+
|
|
72
|
+
# Operations
|
|
73
|
+
|
|
74
|
+
- list: `listActionSteps`
|
|
75
|
+
- get: `getActionStep`
|
|
76
|
+
- create: `createActionStep`
|
|
77
|
+
- update: `updateActionStep`
|
|
78
|
+
- delete: `deleteActionStep`
|
|
79
|
+
- exists: `existsActionStep`
|
|
80
|
+
<!-- okf:generated:end -->
|
|
81
|
+
|
|
82
|
+
# Notes
|
|
83
|
+
|
|
84
|
+
Record-bound follow-ups (linked to a task, ticket, or account, with optional transaction). Do not inflate into full project tasks.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ZeyOS Entity
|
|
3
|
+
title: Addresses
|
|
4
|
+
description: Additional address records linked to accounts or contacts.
|
|
5
|
+
resource: zeyos://api/addresses
|
|
6
|
+
tags: [crm, generated]
|
|
7
|
+
api_backed: true
|
|
8
|
+
list_operation: listAddresses
|
|
9
|
+
visibility_column: false
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- okf:generated:start — rewritten by scripts/generate-okf.mjs; do not edit by hand -->
|
|
13
|
+
# Schema
|
|
14
|
+
|
|
15
|
+
| Column | Type | Nullable | Default | Indexed | FK |
|
|
16
|
+
|---|---|---|---|---|---|
|
|
17
|
+
| `ID` | bigint | no | — | yes | — |
|
|
18
|
+
| `creator` | integer | yes | — | — | — |
|
|
19
|
+
| `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
20
|
+
| `lastmodified` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
21
|
+
| `account` | integer | no | — | yes | [accounts](/entities/accounts.md) |
|
|
22
|
+
| `contact` | integer | no | — | yes | [contacts](/entities/contacts.md) |
|
|
23
|
+
| `type` | smallint | no | `0` | yes | — |
|
|
24
|
+
| `default` | smallint | no | `0` | yes | — |
|
|
25
|
+
|
|
26
|
+
# Foreign Keys
|
|
27
|
+
|
|
28
|
+
- `account` → [accounts](/entities/accounts.md) (`accounts.ID`)
|
|
29
|
+
- `contact` → [contacts](/entities/contacts.md) (`contacts.ID`)
|
|
30
|
+
|
|
31
|
+
# Enums
|
|
32
|
+
|
|
33
|
+
### `type`
|
|
34
|
+
|
|
35
|
+
`0` = BILLING_SHIPPING · `1` = BILLING_BILLING · `2` = PROCUREMENT_SHIPPING · `3` = PROCUREMENT_BILLING · `4` = COLLECTION · `5` = BILLING_SELLER · `6` = PROCUREMENT_SELLER
|
|
36
|
+
|
|
37
|
+
# Indexes
|
|
38
|
+
|
|
39
|
+
- `fk_addresses_contact` — btree on `contact`
|
|
40
|
+
- `u_addresses_account_contact_type` — btree, unique on `account, contact, type, +default`
|
|
41
|
+
|
|
42
|
+
# Operations
|
|
43
|
+
|
|
44
|
+
- list: `listAddresses`
|
|
45
|
+
- get: `getAddress`
|
|
46
|
+
- create: `createAddress`
|
|
47
|
+
- update: `updateAddress`
|
|
48
|
+
- delete: `deleteAddress`
|
|
49
|
+
- exists: `existsAddress`
|
|
50
|
+
<!-- okf:generated:end -->
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ZeyOS Entity
|
|
3
|
+
title: Application Assets
|
|
4
|
+
description: Assets linked to an application.
|
|
5
|
+
resource: zeyos://api/applicationassets
|
|
6
|
+
tags: [platform, generated]
|
|
7
|
+
api_backed: true
|
|
8
|
+
list_operation: listApplicationAssets
|
|
9
|
+
visibility_column: false
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- okf:generated:start — rewritten by scripts/generate-okf.mjs; do not edit by hand -->
|
|
13
|
+
# Schema
|
|
14
|
+
|
|
15
|
+
| Column | Type | Nullable | Default | Indexed | FK |
|
|
16
|
+
|---|---|---|---|---|---|
|
|
17
|
+
| `ID` | bigint | no | — | yes | — |
|
|
18
|
+
| `creator` | integer | yes | — | — | — |
|
|
19
|
+
| `creationdate` | bigint | no | `EXTRACT(epoch FROM now())` | — | — |
|
|
20
|
+
| `lastmodified` | bigint | no | `EXTRACT(epoch FROM now())` | — | — |
|
|
21
|
+
| `application` | integer | no | — | yes | [applications](/entities/applications.md) |
|
|
22
|
+
| `binfile` | integer | yes | — | yes | [binfiles](/entities/binfiles.md) |
|
|
23
|
+
| `filename` | text | no | — | yes | — |
|
|
24
|
+
| `mimetype` | text | no | `'application/octet-stream'` | — | — |
|
|
25
|
+
|
|
26
|
+
# Foreign Keys
|
|
27
|
+
|
|
28
|
+
- `application` → [applications](/entities/applications.md) (`applications.ID`)
|
|
29
|
+
- `binfile` → [binfiles](/entities/binfiles.md) (`binfiles.ID`)
|
|
30
|
+
|
|
31
|
+
# Indexes
|
|
32
|
+
|
|
33
|
+
- `fk_applicationassets_binfile` — btree, partial on `binfile`
|
|
34
|
+
- `u_applicationassets_application_filename` — btree, unique on `application, filename`
|
|
35
|
+
|
|
36
|
+
> Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
|
|
37
|
+
|
|
38
|
+
# Operations
|
|
39
|
+
|
|
40
|
+
- list: `listApplicationAssets`
|
|
41
|
+
- get: `getApplicationAsset`
|
|
42
|
+
- exists: `existsApplicationAsset`
|
|
43
|
+
<!-- okf:generated:end -->
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ZeyOS Entity
|
|
3
|
+
title: Applications
|
|
4
|
+
description: Application definitions.
|
|
5
|
+
resource: zeyos://api/applications
|
|
6
|
+
tags: [platform, generated]
|
|
7
|
+
api_backed: true
|
|
8
|
+
list_operation: listApplications
|
|
9
|
+
visibility_column: false
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- okf:generated:start — rewritten by scripts/generate-okf.mjs; do not edit by hand -->
|
|
13
|
+
# Schema
|
|
14
|
+
|
|
15
|
+
| Column | Type | Nullable | Default | Indexed | FK |
|
|
16
|
+
|---|---|---|---|---|---|
|
|
17
|
+
| `ID` | integer | no | — | yes | — |
|
|
18
|
+
| `creator` | integer | yes | — | — | — |
|
|
19
|
+
| `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
20
|
+
| `lastmodified` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
21
|
+
| `activity` | smallint | no | `0` | — | — |
|
|
22
|
+
| `readmebinfile` | integer | yes | — | — | [binfiles](/entities/binfiles.md) |
|
|
23
|
+
| `name` | text | no | — | yes | — |
|
|
24
|
+
| `identifier` | character varying(200) | no | — | yes | — |
|
|
25
|
+
| `vendor` | text | no | `''` | — | — |
|
|
26
|
+
| `restricted` | smallint | no | `0` | — | — |
|
|
27
|
+
| `callbackurls` | text[] | yes | — | — | — |
|
|
28
|
+
| `settingscodebinfile` | integer | yes | — | yes | [binfiles](/entities/binfiles.md) |
|
|
29
|
+
| `usersettingscodebinfile` | integer | yes | — | yes | [binfiles](/entities/binfiles.md) |
|
|
30
|
+
| `secret` | bytea | yes | — | yes | — |
|
|
31
|
+
| `defaultsettings` | json | yes | — | — | — |
|
|
32
|
+
| `settings` | json | yes | — | — | — |
|
|
33
|
+
|
|
34
|
+
# Foreign Keys
|
|
35
|
+
|
|
36
|
+
- `readmebinfile` → [binfiles](/entities/binfiles.md) (`binfiles.ID`)
|
|
37
|
+
- `settingscodebinfile` → [binfiles](/entities/binfiles.md) (`binfiles.ID`)
|
|
38
|
+
- `usersettingscodebinfile` → [binfiles](/entities/binfiles.md) (`binfiles.ID`)
|
|
39
|
+
|
|
40
|
+
# Enums
|
|
41
|
+
|
|
42
|
+
### `activity`
|
|
43
|
+
|
|
44
|
+
`0` = ACTIVE · `1` = DEACTIVATED · `2` = DELETED
|
|
45
|
+
|
|
46
|
+
# Indexes
|
|
47
|
+
|
|
48
|
+
- `fk_applications_settingscodebinfile` — btree, partial on `settingscodebinfile`
|
|
49
|
+
- `fk_applications_usersettingscodebinfile` — btree, partial on `usersettingscodebinfile`
|
|
50
|
+
- `s_applications_identifier` — gin on `identifier`
|
|
51
|
+
- `s_applications_name` — gin on `name`
|
|
52
|
+
- `u_applications_identifier` — btree, unique on `identifier`
|
|
53
|
+
- `u_applications_secret` — btree, unique, partial on `secret`
|
|
54
|
+
|
|
55
|
+
> Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
|
|
56
|
+
|
|
57
|
+
# Operations
|
|
58
|
+
|
|
59
|
+
- list: `listApplications`
|
|
60
|
+
- get: `getApplication`
|
|
61
|
+
- exists: `existsApplication`
|
|
62
|
+
<!-- okf:generated:end -->
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ZeyOS Entity
|
|
3
|
+
title: Appointments
|
|
4
|
+
description: Calendar appointments.
|
|
5
|
+
resource: zeyos://api/appointments
|
|
6
|
+
tags: [work, generated]
|
|
7
|
+
api_backed: true
|
|
8
|
+
list_operation: listAppointments
|
|
9
|
+
visibility_column: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- okf:generated:start — rewritten by scripts/generate-okf.mjs; do not edit by hand -->
|
|
13
|
+
# Schema
|
|
14
|
+
|
|
15
|
+
| Column | Type | Nullable | Default | Indexed | FK |
|
|
16
|
+
|---|---|---|---|---|---|
|
|
17
|
+
| `ID` | integer | no | — | yes | — |
|
|
18
|
+
| `fork` | integer | yes | — | yes | [forks](/entities/forks.md) |
|
|
19
|
+
| `owneruser` | integer | yes | — | yes | [users](/entities/users.md) |
|
|
20
|
+
| `ownergroup` | integer | yes | — | yes | [groups](/entities/groups.md) |
|
|
21
|
+
| `creator` | integer | yes | — | — | — |
|
|
22
|
+
| `assigneduser` | integer | yes | — | yes | [users](/entities/users.md) |
|
|
23
|
+
| `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
24
|
+
| `lastmodified` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
25
|
+
| `davserver` | integer | yes | — | yes | [davservers](/entities/davservers.md) |
|
|
26
|
+
| `visibility` | smallint | no | `0` | — | — |
|
|
27
|
+
| `name` | text | no | — | yes | — |
|
|
28
|
+
| `location` | text | no | `''` | yes | — |
|
|
29
|
+
| `color` | character varying(6) | no | `''` | — | — |
|
|
30
|
+
| `datefrom` | bigint | no | — | yes | — |
|
|
31
|
+
| `dateto` | bigint | no | — | yes | — |
|
|
32
|
+
| `recurrence` | smallint | yes | — | — | — |
|
|
33
|
+
| `interval` | smallint | no | `1` | — | — |
|
|
34
|
+
| `maxoccurrences` | integer | no | `0` | — | — |
|
|
35
|
+
| `daterecurrence` | bigint | yes | — | — | — |
|
|
36
|
+
| `description` | text | no | `''` | — | — |
|
|
37
|
+
|
|
38
|
+
# Foreign Keys
|
|
39
|
+
|
|
40
|
+
- `fork` → [forks](/entities/forks.md) (`forks.ID`)
|
|
41
|
+
- `owneruser` → [users](/entities/users.md) (`users.ID`)
|
|
42
|
+
- `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
|
|
43
|
+
- `assigneduser` → [users](/entities/users.md) (`users.ID`)
|
|
44
|
+
- `davserver` → [davservers](/entities/davservers.md) (`davservers.ID`)
|
|
45
|
+
|
|
46
|
+
# Enums
|
|
47
|
+
|
|
48
|
+
### `visibility`
|
|
49
|
+
|
|
50
|
+
`0` = REGULAR · `1` = ARCHIVED · `2` = DELETED
|
|
51
|
+
|
|
52
|
+
### `recurrence`
|
|
53
|
+
|
|
54
|
+
`0` = DAY · `1` = WORKDAY · `2` = WEEK · `3` = MONTH · `4` = YEAR
|
|
55
|
+
|
|
56
|
+
# Indexes
|
|
57
|
+
|
|
58
|
+
- `fk_appointments_assigneduser` — gin, partial on `assigneduser`
|
|
59
|
+
- `fk_appointments_davserver` — gin, partial on `davserver`
|
|
60
|
+
- `fk_appointments_fork` — gin, partial on `fork`
|
|
61
|
+
- `fk_appointments_ownergroup` — gin, partial on `ownergroup`
|
|
62
|
+
- `fk_appointments_owneruser` — gin, partial on `owneruser`
|
|
63
|
+
- `i_appointments_datefrom_dateto` — btree on `datefrom, dateto`
|
|
64
|
+
- `i_appointments_nofork` — gin, partial on `fork`
|
|
65
|
+
- `i_appointments_noowner` — gin, partial on `ownergroup`
|
|
66
|
+
- `s_appointments_location` — gin, partial on `location`
|
|
67
|
+
- `s_appointments_name` — gin on `name`
|
|
68
|
+
|
|
69
|
+
> Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
|
|
70
|
+
|
|
71
|
+
# Operations
|
|
72
|
+
|
|
73
|
+
- list: `listAppointments`
|
|
74
|
+
- get: `getAppointment`
|
|
75
|
+
- create: `createAppointment`
|
|
76
|
+
- update: `updateAppointment`
|
|
77
|
+
- delete: `deleteAppointment`
|
|
78
|
+
- exists: `existsAppointment`
|
|
79
|
+
<!-- okf:generated:end -->
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ZeyOS Entity
|
|
3
|
+
title: Associations
|
|
4
|
+
description: Generic cross-entity relation records with metadata.
|
|
5
|
+
resource: zeyos://api/associations
|
|
6
|
+
tags: [platform, generated]
|
|
7
|
+
api_backed: true
|
|
8
|
+
list_operation: listAssociations
|
|
9
|
+
visibility_column: false
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- okf:generated:start — rewritten by scripts/generate-okf.mjs; do not edit by hand -->
|
|
13
|
+
# Schema
|
|
14
|
+
|
|
15
|
+
| Column | Type | Nullable | Default | Indexed | FK |
|
|
16
|
+
|---|---|---|---|---|---|
|
|
17
|
+
| `ID` | bigint | no | — | yes | — |
|
|
18
|
+
| `creator` | integer | yes | — | — | — |
|
|
19
|
+
| `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
20
|
+
| `lastmodified` | bigint | no | `EXTRACT(epoch FROM now())` | — | — |
|
|
21
|
+
| `entity1` | t_entity | no | — | yes | — |
|
|
22
|
+
| `entity2` | t_entity | no | — | yes | — |
|
|
23
|
+
| `index1` | integer | no | — | yes | — |
|
|
24
|
+
| `index2` | integer | no | — | yes | — |
|
|
25
|
+
| `relation` | text | no | `''` | — | — |
|
|
26
|
+
| `meta` | json | yes | — | — | — |
|
|
27
|
+
|
|
28
|
+
# Indexes
|
|
29
|
+
|
|
30
|
+
- `i_associations_entity2_index2` — btree on `entity2, index2`
|
|
31
|
+
- `u_associations_entity1_index1_entity2_index2` — btree, unique on `entity1, index1, entity2, index2`
|
|
32
|
+
|
|
33
|
+
# Operations
|
|
34
|
+
|
|
35
|
+
- list: `listAssociations`
|
|
36
|
+
- get: `getAssociation`
|
|
37
|
+
- create: `createAssociation`
|
|
38
|
+
- update: `updateAssociation`
|
|
39
|
+
- delete: `deleteAssociation`
|
|
40
|
+
- exists: `existsAssociation`
|
|
41
|
+
<!-- okf:generated:end -->
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ZeyOS Entity
|
|
3
|
+
title: Bin Files
|
|
4
|
+
description: Binary file storage records.
|
|
5
|
+
resource: zeyos://api/binfiles
|
|
6
|
+
tags: [platform, generated]
|
|
7
|
+
api_backed: true
|
|
8
|
+
list_operation: listBinFiles
|
|
9
|
+
visibility_column: false
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- okf:generated:start — rewritten by scripts/generate-okf.mjs; do not edit by hand -->
|
|
13
|
+
# Schema
|
|
14
|
+
|
|
15
|
+
| Column | Type | Nullable | Default | Indexed | FK |
|
|
16
|
+
|---|---|---|---|---|---|
|
|
17
|
+
| `ID` | integer | no | — | yes | — |
|
|
18
|
+
| `size` | integer | no | — | yes | — |
|
|
19
|
+
| `hash` | bytea | no | — | yes | — |
|
|
20
|
+
|
|
21
|
+
# Indexes
|
|
22
|
+
|
|
23
|
+
- `i_binfiles_hash` — hash on `hash`
|
|
24
|
+
|
|
25
|
+
# Operations
|
|
26
|
+
|
|
27
|
+
- list: `listBinFiles`
|
|
28
|
+
<!-- okf:generated:end -->
|
|
29
|
+
|
|
30
|
+
# Notes
|
|
31
|
+
|
|
32
|
+
List-only: `listBinFiles`.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ZeyOS Entity
|
|
3
|
+
title: Campaigns
|
|
4
|
+
description: Marketing or outreach campaigns.
|
|
5
|
+
resource: zeyos://api/campaigns
|
|
6
|
+
tags: [outreach, generated]
|
|
7
|
+
api_backed: true
|
|
8
|
+
list_operation: listCampaigns
|
|
9
|
+
visibility_column: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- okf:generated:start — rewritten by scripts/generate-okf.mjs; do not edit by hand -->
|
|
13
|
+
# Schema
|
|
14
|
+
|
|
15
|
+
| Column | Type | Nullable | Default | Indexed | FK |
|
|
16
|
+
|---|---|---|---|---|---|
|
|
17
|
+
| `ID` | integer | no | — | yes | — |
|
|
18
|
+
| `fork` | integer | yes | — | yes | [forks](/entities/forks.md) |
|
|
19
|
+
| `ownergroup` | integer | yes | — | yes | [groups](/entities/groups.md) |
|
|
20
|
+
| `creator` | integer | yes | — | — | — |
|
|
21
|
+
| `assigneduser` | integer | yes | — | yes | [users](/entities/users.md) |
|
|
22
|
+
| `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
23
|
+
| `lastmodified` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
24
|
+
| `visibility` | smallint | no | `0` | — | — |
|
|
25
|
+
| `name` | text | no | — | yes | — |
|
|
26
|
+
| `datefrom` | bigint | no | — | — | — |
|
|
27
|
+
| `dateto` | bigint | yes | — | — | — |
|
|
28
|
+
| `status` | smallint | no | `0` | — | — |
|
|
29
|
+
| `description` | text | no | `''` | — | — |
|
|
30
|
+
|
|
31
|
+
# Foreign Keys
|
|
32
|
+
|
|
33
|
+
- `fork` → [forks](/entities/forks.md) (`forks.ID`)
|
|
34
|
+
- `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
|
|
35
|
+
- `assigneduser` → [users](/entities/users.md) (`users.ID`)
|
|
36
|
+
|
|
37
|
+
# Enums
|
|
38
|
+
|
|
39
|
+
### `visibility`
|
|
40
|
+
|
|
41
|
+
`0` = REGULAR · `1` = ARCHIVED · `2` = DELETED
|
|
42
|
+
|
|
43
|
+
### `status`
|
|
44
|
+
|
|
45
|
+
`0` = DRAFT · `1` = NOTSTARTED · `2` = AWAITINGAPPROVAL · `3` = APPROVED · `4` = DISMISSED · `5` = ACTIVE · `6` = INACTIVE · `7` = INEVALUATION · `8` = CANCELLED · `9` = CLOSED
|
|
46
|
+
|
|
47
|
+
# Indexes
|
|
48
|
+
|
|
49
|
+
- `fk_campaigns_assigneduser` — gin, partial on `assigneduser`
|
|
50
|
+
- `fk_campaigns_fork` — gin, partial on `fork`
|
|
51
|
+
- `fk_campaigns_ownergroup` — gin on `ownergroup`
|
|
52
|
+
- `i_campaigns_nofork` — gin, partial on `fork`
|
|
53
|
+
- `i_campaigns_noowner` — gin, partial on `ownergroup`
|
|
54
|
+
- `s_campaigns_name` — gin on `name`
|
|
55
|
+
|
|
56
|
+
> Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
|
|
57
|
+
|
|
58
|
+
# Operations
|
|
59
|
+
|
|
60
|
+
- list: `listCampaigns`
|
|
61
|
+
- get: `getCampaign`
|
|
62
|
+
- create: `createCampaign`
|
|
63
|
+
- update: `updateCampaign`
|
|
64
|
+
- delete: `deleteCampaign`
|
|
65
|
+
- exists: `existsCampaign`
|
|
66
|
+
<!-- okf:generated:end -->
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ZeyOS Entity
|
|
3
|
+
title: Categorys
|
|
4
|
+
description: Category definitions.
|
|
5
|
+
resource: zeyos://api/categories
|
|
6
|
+
tags: [commerce, generated]
|
|
7
|
+
api_backed: true
|
|
8
|
+
list_operation: listCategorys
|
|
9
|
+
visibility_column: false
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- okf:generated:start — rewritten by scripts/generate-okf.mjs; do not edit by hand -->
|
|
13
|
+
# Schema
|
|
14
|
+
|
|
15
|
+
| Column | Type | Nullable | Default | Indexed | FK |
|
|
16
|
+
|---|---|---|---|---|---|
|
|
17
|
+
| `ID` | integer | no | — | yes | — |
|
|
18
|
+
| `fork` | integer | yes | — | yes | [forks](/entities/forks.md) |
|
|
19
|
+
| `owneruser` | integer | yes | — | yes | [users](/entities/users.md) |
|
|
20
|
+
| `ownergroup` | integer | yes | — | yes | [groups](/entities/groups.md) |
|
|
21
|
+
| `creator` | integer | yes | — | — | — |
|
|
22
|
+
| `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
|
|
23
|
+
| `lastmodified` | bigint | no | `EXTRACT(epoch FROM now())` | — | — |
|
|
24
|
+
| `entity` | text | no | — | yes | — |
|
|
25
|
+
| `name` | text | no | — | yes | — |
|
|
26
|
+
|
|
27
|
+
# Foreign Keys
|
|
28
|
+
|
|
29
|
+
- `fork` → [forks](/entities/forks.md) (`forks.ID`)
|
|
30
|
+
- `owneruser` → [users](/entities/users.md) (`users.ID`)
|
|
31
|
+
- `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
|
|
32
|
+
|
|
33
|
+
# Indexes
|
|
34
|
+
|
|
35
|
+
- `i_categories_entity_name_root` — btree, partial on `entity, name`
|
|
36
|
+
- `i_categories_entity_name_sub` — btree, partial on `entity, name`
|
|
37
|
+
- `i_categories_fork_entity_name_root` — btree, partial on `fork, entity, name`
|
|
38
|
+
- `i_categories_fork_entity_name_sub` — btree, partial on `fork, entity, name`
|
|
39
|
+
- `u_categories_fork_entity_name_owneruser_ownergroup` — btree, unique on `fork, entity, name, owneruser, ownergroup`
|
|
40
|
+
|
|
41
|
+
> Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
|
|
42
|
+
|
|
43
|
+
# Operations
|
|
44
|
+
|
|
45
|
+
- list: `listCategorys`
|
|
46
|
+
- get: `getCategory`
|
|
47
|
+
- create: `createCategory`
|
|
48
|
+
- update: `updateCategory`
|
|
49
|
+
- delete: `deleteCategory`
|
|
50
|
+
- exists: `existsCategory`
|
|
51
|
+
<!-- okf:generated:end -->
|
|
52
|
+
|
|
53
|
+
# Notes
|
|
54
|
+
|
|
55
|
+
operationId trap: list op is `listCategorys` (sic); singular ops use `Category`.
|