@zeyos/client 0.3.0 → 0.5.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.
Files changed (137) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +41 -2
  3. package/agents/README.md +10 -0
  4. package/agents/shared/zeyos-agent-operating-guide.md +42 -0
  5. package/agents/shared/zeyos-entity-map.md +5 -1
  6. package/agents/shared/zeyos-entity-reference.md +89 -33
  7. package/agents/shared/zeyos-query-patterns.md +26 -0
  8. package/agents/zeyos-calendar-and-scheduling/SKILL.md +45 -0
  9. package/agents/zeyos-calendar-and-scheduling/references/workflows.md +49 -0
  10. package/agents/zeyos-data-quality-and-governance/SKILL.md +43 -0
  11. package/agents/zeyos-data-quality-and-governance/references/workflows.md +51 -0
  12. package/agents/zeyos-document-and-approval/SKILL.md +41 -0
  13. package/agents/zeyos-document-and-approval/references/workflows.md +43 -0
  14. package/agents/zeyos-procurement-and-supplier-performance/SKILL.md +36 -0
  15. package/agents/zeyos-procurement-and-supplier-performance/references/workflows.md +46 -0
  16. package/agents/zeyos-time-tracking/SKILL.md +2 -0
  17. package/agents/zeyos-time-tracking/references/workflows.md +68 -0
  18. package/agents/zeyos-work-management/SKILL.md +4 -3
  19. package/agents/zeyos-work-management/references/workflows.md +39 -1
  20. package/docs/03-cli/02-commands.md +36 -2
  21. package/docs/03-cli/03-configuration.md +1 -0
  22. package/docs/06-okf/01-overview.md +70 -0
  23. package/docs/06-okf/02-producing-and-consuming.md +46 -0
  24. package/docs/06-okf/03-keeping-fresh.md +53 -0
  25. package/docs/06-okf/04-loops.md +58 -0
  26. package/docs/06-okf/_category_.json +9 -0
  27. package/okf/concepts/calendar-timezones.md +10 -0
  28. package/okf/concepts/confirmation-and-side-effects.md +14 -0
  29. package/okf/concepts/counting-and-sums.md +10 -0
  30. package/okf/concepts/currency-and-rounding.md +10 -0
  31. package/okf/concepts/dates-unix-seconds.md +12 -0
  32. package/okf/concepts/enums.md +14 -0
  33. package/okf/concepts/filters-vs-filter.md +14 -0
  34. package/okf/concepts/idempotency-and-deduplication.md +10 -0
  35. package/okf/concepts/index.md +16 -0
  36. package/okf/concepts/null-empty-missing.md +10 -0
  37. package/okf/concepts/official-versus-latest.md +10 -0
  38. package/okf/concepts/operationid-vocabulary.md +17 -0
  39. package/okf/concepts/ownership-versus-attention.md +15 -0
  40. package/okf/concepts/untrusted-business-content.md +10 -0
  41. package/okf/concepts/visibility-column.md +13 -0
  42. package/okf/entities/accounts.md +82 -0
  43. package/okf/entities/actionsteps.md +84 -0
  44. package/okf/entities/addresses.md +50 -0
  45. package/okf/entities/applicationassets.md +43 -0
  46. package/okf/entities/applications.md +62 -0
  47. package/okf/entities/appointments.md +79 -0
  48. package/okf/entities/associations.md +41 -0
  49. package/okf/entities/binfiles.md +32 -0
  50. package/okf/entities/campaigns.md +66 -0
  51. package/okf/entities/categories.md +55 -0
  52. package/okf/entities/channels.md +54 -0
  53. package/okf/entities/comments.md +44 -0
  54. package/okf/entities/components.md +46 -0
  55. package/okf/entities/contacts.md +96 -0
  56. package/okf/entities/contacts2contacts.md +42 -0
  57. package/okf/entities/contracts.md +83 -0
  58. package/okf/entities/couponcodes.md +58 -0
  59. package/okf/entities/coupons.md +69 -0
  60. package/okf/entities/customfields.md +59 -0
  61. package/okf/entities/davservers.md +74 -0
  62. package/okf/entities/devices.md +65 -0
  63. package/okf/entities/documents.md +76 -0
  64. package/okf/entities/dunning.md +82 -0
  65. package/okf/entities/dunning2transactions.md +46 -0
  66. package/okf/entities/entities2channels.md +42 -0
  67. package/okf/entities/events.md +57 -0
  68. package/okf/entities/feedservers.md +67 -0
  69. package/okf/entities/files.md +50 -0
  70. package/okf/entities/follows.md +40 -0
  71. package/okf/entities/forks.md +54 -0
  72. package/okf/entities/groups.md +48 -0
  73. package/okf/entities/groups2users.md +44 -0
  74. package/okf/entities/index.md +93 -0
  75. package/okf/entities/invitations.md +53 -0
  76. package/okf/entities/items.md +95 -0
  77. package/okf/entities/ledgers.md +56 -0
  78. package/okf/entities/likes.md +40 -0
  79. package/okf/entities/links.md +70 -0
  80. package/okf/entities/mailinglists.md +67 -0
  81. package/okf/entities/mailingrecipients.md +45 -0
  82. package/okf/entities/mailservers.md +77 -0
  83. package/okf/entities/messagereads.md +40 -0
  84. package/okf/entities/messages.md +104 -0
  85. package/okf/entities/notes.md +73 -0
  86. package/okf/entities/objects.md +70 -0
  87. package/okf/entities/opportunities.md +87 -0
  88. package/okf/entities/participants.md +52 -0
  89. package/okf/entities/payments.md +76 -0
  90. package/okf/entities/permissions.md +46 -0
  91. package/okf/entities/pricelists.md +70 -0
  92. package/okf/entities/pricelists2accounts.md +46 -0
  93. package/okf/entities/prices.md +49 -0
  94. package/okf/entities/projects.md +72 -0
  95. package/okf/entities/records.md +75 -0
  96. package/okf/entities/relateditems.md +43 -0
  97. package/okf/entities/resources.md +55 -0
  98. package/okf/entities/services.md +64 -0
  99. package/okf/entities/stocktransactions.md +72 -0
  100. package/okf/entities/storages.md +56 -0
  101. package/okf/entities/suppliers.md +51 -0
  102. package/okf/entities/tasks.md +86 -0
  103. package/okf/entities/tickets.md +86 -0
  104. package/okf/entities/transactions.md +118 -0
  105. package/okf/entities/users.md +66 -0
  106. package/okf/entities/weblets.md +66 -0
  107. package/okf/index.md +11 -0
  108. package/okf/log.md +4 -0
  109. package/okf/metrics/account-address-completeness.md +10 -0
  110. package/okf/metrics/cash-received.md +10 -0
  111. package/okf/metrics/index.md +9 -0
  112. package/okf/metrics/invoiced-net-revenue.md +16 -0
  113. package/okf/metrics/open-customers.md +14 -0
  114. package/okf/metrics/overdue-receivables.md +12 -0
  115. package/okf/metrics/stock-movement-by-storage.md +10 -0
  116. package/okf/metrics/supplier-delivery-performance.md +10 -0
  117. package/okf/playbooks/activity-timeline.md +11 -0
  118. package/okf/playbooks/calendar-availability.md +11 -0
  119. package/okf/playbooks/campaign-recipient-coverage.md +12 -0
  120. package/okf/playbooks/customer-360.md +12 -0
  121. package/okf/playbooks/document-approval.md +10 -0
  122. package/okf/playbooks/duplicate-account-review.md +11 -0
  123. package/okf/playbooks/effective-customer-price.md +11 -0
  124. package/okf/playbooks/index.md +13 -0
  125. package/okf/playbooks/missing-billing-addresses.md +12 -0
  126. package/okf/playbooks/revenue-this-year.md +19 -0
  127. package/okf/playbooks/supplier-scorecard.md +10 -0
  128. package/okf/playbooks/ticket-work-packet.md +11 -0
  129. package/package.json +11 -3
  130. package/scripts/data/okf-curation.mjs +446 -0
  131. package/scripts/generate-client.mjs +4 -275
  132. package/scripts/generate-okf.mjs +241 -0
  133. package/scripts/lib/live-test-config.mjs +20 -0
  134. package/scripts/lib/okf.mjs +272 -0
  135. package/scripts/lib/spec-model.mjs +325 -0
  136. package/src/index.js +4 -0
  137. package/src/runtime/okf.js +237 -0
@@ -0,0 +1,70 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Links
4
+ description: Link records with name and description.
5
+ resource: zeyos://api/links
6
+ tags: [platform, generated]
7
+ api_backed: true
8
+ list_operation: listLinks
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
+ | `visibility` | smallint | no | `0` | — | — |
26
+ | `name` | text | no | — | yes | — |
27
+ | `url` | text | no | `''` | yes | — |
28
+ | `expdate` | bigint | yes | — | — | — |
29
+ | `username` | text | no | `''` | — | — |
30
+ | `password` | text | no | `''` | — | — |
31
+ | `visits` | integer | no | `0` | — | — |
32
+ | `description` | text | no | `''` | — | — |
33
+ | `password_encrypted` | bytea | yes | — | — | — |
34
+ | `otpsecret` | bytea | yes | — | — | — |
35
+
36
+ # Foreign Keys
37
+
38
+ - `fork` → [forks](/entities/forks.md) (`forks.ID`)
39
+ - `owneruser` → [users](/entities/users.md) (`users.ID`)
40
+ - `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
41
+ - `assigneduser` → [users](/entities/users.md) (`users.ID`)
42
+
43
+ # Enums
44
+
45
+ ### `visibility`
46
+
47
+ `0` = REGULAR · `1` = ARCHIVED · `2` = DELETED
48
+
49
+ # Indexes
50
+
51
+ - `fk_links_assigneduser` — gin, partial on `assigneduser`
52
+ - `fk_links_fork` — gin, partial on `fork`
53
+ - `fk_links_ownergroup` — gin, partial on `ownergroup`
54
+ - `fk_links_owneruser` — gin, partial on `owneruser`
55
+ - `i_links_nofork` — gin, partial on `fork`
56
+ - `i_links_noowner` — gin, partial on `ownergroup`
57
+ - `s_links_name` — gin on `name`
58
+ - `s_links_url` — gin, partial on `url`
59
+
60
+ > Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
61
+
62
+ # Operations
63
+
64
+ - list: `listLinks`
65
+ - get: `getLink`
66
+ - create: `createLink`
67
+ - update: `updateLink`
68
+ - delete: `deleteLink`
69
+ - exists: `existsLink`
70
+ <!-- okf:generated:end -->
@@ -0,0 +1,67 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Mailing Lists
4
+ description: Mailing list definitions.
5
+ resource: zeyos://api/mailinglists
6
+ tags: [outreach, generated]
7
+ api_backed: true
8
+ list_operation: listMailingLists
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
+ | `campaign` | integer | yes | — | yes | [campaigns](/entities/campaigns.md) |
26
+ | `visibility` | smallint | no | `0` | — | — |
27
+ | `name` | text | no | — | yes | — |
28
+ | `sender` | text | no | `''` | yes | — |
29
+ | `description` | text | no | `''` | — | — |
30
+
31
+ # Foreign Keys
32
+
33
+ - `fork` → [forks](/entities/forks.md) (`forks.ID`)
34
+ - `owneruser` → [users](/entities/users.md) (`users.ID`)
35
+ - `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
36
+ - `assigneduser` → [users](/entities/users.md) (`users.ID`)
37
+ - `campaign` → [campaigns](/entities/campaigns.md) (`campaigns.ID`)
38
+
39
+ # Enums
40
+
41
+ ### `visibility`
42
+
43
+ `0` = REGULAR · `1` = ARCHIVED · `2` = DELETED
44
+
45
+ # Indexes
46
+
47
+ - `fk_mailinglists_assigneduser` — gin, partial on `assigneduser`
48
+ - `fk_mailinglists_campaign` — btree, partial on `campaign`
49
+ - `fk_mailinglists_fork` — gin, partial on `fork`
50
+ - `fk_mailinglists_ownergroup` — gin, partial on `ownergroup`
51
+ - `fk_mailinglists_owneruser` — gin, partial on `owneruser`
52
+ - `i_mailinglists_nofork` — gin, partial on `fork`
53
+ - `i_mailinglists_noowner` — gin, partial on `ownergroup`
54
+ - `s_mailinglists_name` — gin on `name`
55
+ - `s_mailinglists_sender` — gin, partial on `sender`
56
+
57
+ > Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
58
+
59
+ # Operations
60
+
61
+ - list: `listMailingLists`
62
+ - get: `getMailingList`
63
+ - create: `createMailingList`
64
+ - update: `updateMailingList`
65
+ - delete: `deleteMailingList`
66
+ - exists: `existsMailingList`
67
+ <!-- okf:generated:end -->
@@ -0,0 +1,45 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Mailing Recipients
4
+ description: Recipient records for a message.
5
+ resource: zeyos://api/mailingrecipients
6
+ tags: [outreach, generated]
7
+ api_backed: true
8
+ list_operation: listMailingRecipients
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
+ | `message` | integer | no | — | yes | [messages](/entities/messages.md) |
22
+ | `participant` | bigint | yes | — | yes | [participants](/entities/participants.md) |
23
+ | `email` | text | no | — | — | — |
24
+
25
+ # Foreign Keys
26
+
27
+ - `message` → [messages](/entities/messages.md) (`messages.ID`)
28
+ - `participant` → [participants](/entities/participants.md) (`participants.ID`)
29
+
30
+ # Indexes
31
+
32
+ - `fk_mailingrecipients_message` — btree on `message`
33
+ - `u_mailingrecipients_participant_message` — btree, unique, partial on `participant, message`
34
+
35
+ > Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
36
+
37
+ # Operations
38
+
39
+ - list: `listMailingRecipients`
40
+ - get: `getMailingRecipient`
41
+ - create: `createMailingRecipient`
42
+ - update: `updateMailingRecipient`
43
+ - delete: `deleteMailingRecipient`
44
+ - exists: `existsMailingRecipients`
45
+ <!-- okf:generated:end -->
@@ -0,0 +1,77 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Mail Servers
4
+ description: Mail server definitions.
5
+ resource: zeyos://api/mailservers
6
+ tags: [messaging, generated]
7
+ api_backed: true
8
+ list_operation: listMailServers
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
+ | `owneruser` | integer | yes | — | yes | [users](/entities/users.md) |
19
+ | `ownergroup` | integer | yes | — | yes | [groups](/entities/groups.md) |
20
+ | `creator` | integer | yes | — | — | — |
21
+ | `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
22
+ | `lastmodified` | bigint | no | `date_part('epoch', now())` | — | — |
23
+ | `recipientuser` | integer | yes | — | — | [users](/entities/users.md) |
24
+ | `recipientgroup` | integer | yes | — | — | [groups](/entities/groups.md) |
25
+ | `autoreplybinfile` | integer | yes | — | yes | [binfiles](/entities/binfiles.md) |
26
+ | `signaturebinfile` | integer | yes | — | yes | [binfiles](/entities/binfiles.md) |
27
+ | `activity` | smallint | no | `0` | — | — |
28
+ | `name` | text | no | — | yes | — |
29
+ | `sender` | text | no | `''` | yes | — |
30
+ | `serverin` | text | no | `''` | yes | — |
31
+ | `usernamein` | text | no | `''` | — | — |
32
+ | `serverout` | text | no | `''` | yes | — |
33
+ | `usernameout` | text | no | `''` | — | — |
34
+ | `description` | text | no | `''` | — | — |
35
+ | `ticketing` | json | yes | — | — | — |
36
+ | `folders` | json | yes | — | — | — |
37
+ | `passwordin` | bytea | yes | — | — | — |
38
+ | `passwordout` | bytea | yes | — | — | — |
39
+
40
+ # Foreign Keys
41
+
42
+ - `owneruser` → [users](/entities/users.md) (`users.ID`)
43
+ - `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
44
+ - `recipientuser` → [users](/entities/users.md) (`users.ID`)
45
+ - `recipientgroup` → [groups](/entities/groups.md) (`groups.ID`)
46
+ - `autoreplybinfile` → [binfiles](/entities/binfiles.md) (`binfiles.ID`)
47
+ - `signaturebinfile` → [binfiles](/entities/binfiles.md) (`binfiles.ID`)
48
+
49
+ # Enums
50
+
51
+ ### `activity`
52
+
53
+ `0` = ACTIVE · `1` = DEACTIVATED · `2` = DELETED
54
+
55
+ # Indexes
56
+
57
+ - `fk_mailservers_autoreplybinfile` — btree, partial on `autoreplybinfile`
58
+ - `fk_mailservers_ownergroup` — gin, partial on `ownergroup`
59
+ - `fk_mailservers_owneruser` — gin, partial on `owneruser`
60
+ - `fk_mailservers_signaturebinfile` — btree, partial on `signaturebinfile`
61
+ - `i_mailservers_noowner` — gin, partial on `ownergroup`
62
+ - `s_mailservers_name` — gin on `name`
63
+ - `s_mailservers_sender` — gin, partial on `sender`
64
+ - `s_mailservers_serverin` — gin, partial on `serverin`
65
+ - `s_mailservers_serverout` — gin, partial on `serverout`
66
+
67
+ > Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
68
+
69
+ # Operations
70
+
71
+ - list: `listMailServers`
72
+ - get: `getMailServer`
73
+ - create: `createMailServer`
74
+ - update: `updateMailServer`
75
+ - delete: `deleteMailServer`
76
+ - exists: `existsMailServer`
77
+ <!-- okf:generated:end -->
@@ -0,0 +1,40 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Message Reads
4
+ description: Read-tracking records for messages.
5
+ resource: zeyos://api/messagereads
6
+ tags: [messaging, generated]
7
+ api_backed: true
8
+ list_operation: listMessageReads
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 | no | — | yes | [users](/entities/users.md) |
19
+ | `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
20
+ | `lastmodified` | bigint | no | `EXTRACT(epoch FROM now())` | — | — |
21
+ | `message` | integer | no | — | yes | [messages](/entities/messages.md) |
22
+
23
+ # Foreign Keys
24
+
25
+ - `creator` → [users](/entities/users.md) (`users.ID`)
26
+ - `message` → [messages](/entities/messages.md) (`messages.ID`)
27
+
28
+ # Indexes
29
+
30
+ - `u_messagereads_message_creator` — btree, unique on `message, creator`
31
+
32
+ # Operations
33
+
34
+ - list: `listMessageReads`
35
+ - get: `getMessageRead`
36
+ - create: `createMessageRead`
37
+ - update: `updateMessageRead`
38
+ - delete: `deleteMessageRead`
39
+ - exists: `existsMessageRead`
40
+ <!-- okf:generated:end -->
@@ -0,0 +1,104 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Messages
4
+ description: Email and message records.
5
+ resource: zeyos://api/messages
6
+ tags: [messaging, generated]
7
+ api_backed: true
8
+ list_operation: listMessages
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 | `date_part('epoch', now())` | — | — |
24
+ | `mailserver` | integer | yes | — | yes | [mailservers](/entities/mailservers.md) |
25
+ | `ticket` | integer | yes | — | yes | [tickets](/entities/tickets.md) |
26
+ | `opportunity` | integer | yes | — | yes | [opportunities](/entities/opportunities.md) |
27
+ | `mailinglist` | integer | yes | — | yes | [mailinglists](/entities/mailinglists.md) |
28
+ | `reference` | integer | yes | — | yes | [messages](/entities/messages.md) |
29
+ | `binfile` | integer | yes | — | yes | [binfiles](/entities/binfiles.md) |
30
+ | `mailbox` | smallint | no | `0` | — | — |
31
+ | `verified` | smallint | no | `0` | — | — |
32
+ | `date` | bigint | no | `date_part('epoch', now())` | yes | — |
33
+ | `subject` | text | no | `''` | yes | — |
34
+ | `sender` | text | no | `''` | yes | — |
35
+ | `sender_email` | text | no | `''` | — | — |
36
+ | `sender_name` | text | no | `''` | — | — |
37
+ | `to` | text | no | `''` | yes | — |
38
+ | `to_email` | text | no | `''` | — | — |
39
+ | `to_name` | text | no | `''` | — | — |
40
+ | `to_count` | integer | no | `0` | — | — |
41
+ | `cc` | text | no | `''` | — | — |
42
+ | `bcc` | text | no | `''` | — | — |
43
+ | `contenttype` | text | no | `''` | — | — |
44
+ | `text` | text | no | `''` | — | — |
45
+ | `attachments` | text[] | yes | — | — | — |
46
+ | `senddate` | bigint | yes | — | — | — |
47
+ | `senderror` | text | no | `''` | — | — |
48
+ | `messageid` | text | no | `''` | yes | — |
49
+
50
+ # Foreign Keys
51
+
52
+ - `fork` → [forks](/entities/forks.md) (`forks.ID`)
53
+ - `owneruser` → [users](/entities/users.md) (`users.ID`)
54
+ - `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
55
+ - `mailserver` → [mailservers](/entities/mailservers.md) (`mailservers.ID`)
56
+ - `ticket` → [tickets](/entities/tickets.md) (`tickets.ID`)
57
+ - `opportunity` → [opportunities](/entities/opportunities.md) (`opportunities.ID`)
58
+ - `mailinglist` → [mailinglists](/entities/mailinglists.md) (`mailinglists.ID`)
59
+ - `reference` → [messages](/entities/messages.md) (`messages.ID`)
60
+ - `binfile` → [binfiles](/entities/binfiles.md) (`binfiles.ID`)
61
+
62
+ # Enums
63
+
64
+ ### `mailbox`
65
+
66
+ `0` = INBOX · `1` = DRAFTS · `2` = SENT · `3` = TEMPLATES · `4` = MAILINGS · `5` = ARCHIVE · `6` = TRASH · `7` = JUNK
67
+
68
+ # Indexes
69
+
70
+ - `fk_messages_binfile` — btree, partial on `binfile`
71
+ - `fk_messages_fork` — gin, partial on `fork`
72
+ - `fk_messages_mailinglist` — gin, partial on `mailinglist`
73
+ - `fk_messages_mailserver` — gin, partial on `mailserver`
74
+ - `fk_messages_opportunity` — btree, partial on `opportunity`
75
+ - `fk_messages_ownergroup` — gin, partial on `ownergroup`
76
+ - `fk_messages_owneruser` — gin, partial on `owneruser`
77
+ - `fk_messages_reference` — btree, partial on `reference`
78
+ - `fk_messages_ticket` — btree, partial on `ticket`
79
+ - `i_messages_inbox_date` — btree, partial on `date`
80
+ - `i_messages_messageid` — btree, partial on `messageid`
81
+ - `i_messages_nofork` — gin, partial on `fork`
82
+ - `i_messages_noowner` — gin, partial on `ownergroup`
83
+ - `i_messages_regular_date` — btree, partial on `date`
84
+ - `i_messages_sendmail` — btree, partial on `mailserver`
85
+ - `i_messages_trash_date` — btree, partial on `date`
86
+ - `s_messages_sender` — gin, partial on `sender`
87
+ - `s_messages_subject` — gin, partial on `subject`
88
+ - `s_messages_to` — gin, partial on `to`
89
+
90
+ > Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
91
+
92
+ # Operations
93
+
94
+ - list: `listMessages`
95
+ - get: `getMessage`
96
+ - create: `createMessage`
97
+ - update: `updateMessage`
98
+ - delete: `deleteMessage`
99
+ - exists: `existsMessage`
100
+ <!-- okf:generated:end -->
101
+
102
+ # Notes
103
+
104
+ No direct `account` foreign key — link via `ticket`/`opportunity`/`mailinglist`/`reference`, or resolve customer email addresses first. Reconstruct threads via `reference`/`messageid`/`subject`.
@@ -0,0 +1,73 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Notes
4
+ description: Text-centric internal knowledge items.
5
+ resource: zeyos://api/notes
6
+ tags: [knowledge, generated]
7
+ api_backed: true
8
+ list_operation: listNotes
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
+ | `binfile` | integer | yes | — | yes | [binfiles](/entities/binfiles.md) |
26
+ | `visibility` | smallint | no | `0` | — | — |
27
+ | `name` | text | no | — | yes | — |
28
+ | `status` | smallint | no | `0` | — | — |
29
+ | `contenttype` | text | no | `''` | — | — |
30
+ | `text` | text | no | `''` | — | — |
31
+ | `attachments` | text[] | yes | — | — | — |
32
+ | `description` | text | no | `''` | — | — |
33
+
34
+ # Foreign Keys
35
+
36
+ - `fork` → [forks](/entities/forks.md) (`forks.ID`)
37
+ - `owneruser` → [users](/entities/users.md) (`users.ID`)
38
+ - `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
39
+ - `assigneduser` → [users](/entities/users.md) (`users.ID`)
40
+ - `binfile` → [binfiles](/entities/binfiles.md) (`binfiles.ID`)
41
+
42
+ # Enums
43
+
44
+ ### `visibility`
45
+
46
+ `0` = REGULAR · `1` = ARCHIVED · `2` = DELETED
47
+
48
+ ### `status`
49
+
50
+ `0` = DRAFT · `1` = FEEDBACKREQUIRED · `2` = INREVISION · `3` = AWAITINGAPPROVAL · `4` = FINAL · `5` = OBSOLETE
51
+
52
+ # Indexes
53
+
54
+ - `fk_notes_assigneduser` — gin, partial on `assigneduser`
55
+ - `fk_notes_binfile` — btree, partial on `binfile`
56
+ - `fk_notes_fork` — gin, partial on `fork`
57
+ - `fk_notes_ownergroup` — gin, partial on `ownergroup`
58
+ - `fk_notes_owneruser` — gin, partial on `owneruser`
59
+ - `i_notes_nofork` — gin, partial on `fork`
60
+ - `i_notes_noowner` — gin, partial on `ownergroup`
61
+ - `s_notes_name` — gin on `name`
62
+
63
+ > Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
64
+
65
+ # Operations
66
+
67
+ - list: `listNotes`
68
+ - get: `getNote`
69
+ - create: `createNote`
70
+ - update: `updateNote`
71
+ - delete: `deleteNote`
72
+ - exists: `existsNote`
73
+ <!-- okf:generated:end -->
@@ -0,0 +1,70 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Objects
4
+ description: Custom object records with arbitrary JSON payloads.
5
+ resource: zeyos://api/objects
6
+ tags: [platform, generated]
7
+ api_backed: true
8
+ list_operation: listObjects
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
+ | `binfile` | integer | yes | — | yes | [binfiles](/entities/binfiles.md) |
26
+ | `visibility` | smallint | no | `0` | — | — |
27
+ | `name` | text | no | — | yes | — |
28
+ | `entity` | text | no | — | yes | — |
29
+ | `date` | bigint | no | `EXTRACT(epoch FROM now())` | yes | — |
30
+ | `description` | text | no | `''` | — | — |
31
+ | `data` | json | yes | — | — | — |
32
+
33
+ # Foreign Keys
34
+
35
+ - `fork` → [forks](/entities/forks.md) (`forks.ID`)
36
+ - `owneruser` → [users](/entities/users.md) (`users.ID`)
37
+ - `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
38
+ - `assigneduser` → [users](/entities/users.md) (`users.ID`)
39
+ - `binfile` → [binfiles](/entities/binfiles.md) (`binfiles.ID`)
40
+
41
+ # Enums
42
+
43
+ ### `visibility`
44
+
45
+ `0` = REGULAR · `1` = ARCHIVED · `2` = DELETED
46
+
47
+ # Indexes
48
+
49
+ - `fk_objects_assigneduser` — gin, partial on `assigneduser`
50
+ - `fk_objects_binfile` — btree, partial on `binfile`
51
+ - `fk_objects_fork` — gin, partial on `fork`
52
+ - `fk_objects_ownergroup` — gin, partial on `ownergroup`
53
+ - `fk_objects_owneruser` — gin, partial on `owneruser`
54
+ - `i_objects_date` — btree on `date`
55
+ - `i_objects_entity` — gin on `entity`
56
+ - `i_objects_nofork` — gin, partial on `fork`
57
+ - `i_objects_noowner` — gin, partial on `ownergroup`
58
+ - `s_objects_name` — gin on `name`
59
+
60
+ > Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
61
+
62
+ # Operations
63
+
64
+ - list: `listObjects`
65
+ - get: `getObject`
66
+ - create: `createObject`
67
+ - update: `updateObject`
68
+ - delete: `deleteObject`
69
+ - exists: `existsObject`
70
+ <!-- okf:generated:end -->
@@ -0,0 +1,87 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Opportunities
4
+ description: Sales pipeline and deal records.
5
+ resource: zeyos://api/opportunities
6
+ tags: [crm, generated]
7
+ api_backed: true
8
+ list_operation: listOpportunities
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
+ | `account` | integer | yes | — | yes | [accounts](/entities/accounts.md) |
25
+ | `contact` | integer | yes | — | yes | [contacts](/entities/contacts.md) |
26
+ | `campaign` | integer | yes | — | yes | [campaigns](/entities/campaigns.md) |
27
+ | `visibility` | smallint | no | `0` | — | — |
28
+ | `name` | text | no | — | yes | — |
29
+ | `opportunitynum` | text | no | `''` | yes | — |
30
+ | `date` | bigint | no | `EXTRACT(epoch FROM now())` | yes | — |
31
+ | `duedate` | bigint | yes | — | — | — |
32
+ | `status` | smallint | no | `0` | — | — |
33
+ | `priority` | smallint | no | `2` | — | — |
34
+ | `probability` | smallint | no | `0` | — | — |
35
+ | `worstcase` | double precision | no | `0` | — | — |
36
+ | `mostlikely` | double precision | no | `0` | — | — |
37
+ | `upside` | double precision | no | `0` | — | — |
38
+ | `description` | text | no | `''` | — | — |
39
+
40
+ # Foreign Keys
41
+
42
+ - `fork` → [forks](/entities/forks.md) (`forks.ID`)
43
+ - `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
44
+ - `assigneduser` → [users](/entities/users.md) (`users.ID`)
45
+ - `account` → [accounts](/entities/accounts.md) (`accounts.ID`)
46
+ - `contact` → [contacts](/entities/contacts.md) (`contacts.ID`)
47
+ - `campaign` → [campaigns](/entities/campaigns.md) (`campaigns.ID`)
48
+
49
+ # Enums
50
+
51
+ ### `visibility`
52
+
53
+ `0` = REGULAR · `1` = ARCHIVED · `2` = DELETED
54
+
55
+ ### `status`
56
+
57
+ `0` = UNEVALUATED · `1` = ELIGIBLE · `2` = FEEDBACKREQUIRED · `3` = INNEGOTIATION · `4` = OFFERED · `5` = ACCEPTED · `6` = REJECTED
58
+
59
+ ### `priority`
60
+
61
+ `0` = LOWEST · `1` = LOW · `2` = MEDIUM · `3` = HIGH · `4` = HIGHEST
62
+
63
+ # Indexes
64
+
65
+ - `fk_opportunities_account` — btree, partial on `account`
66
+ - `fk_opportunities_assigneduser` — gin, partial on `assigneduser`
67
+ - `fk_opportunities_campaign` — btree, partial on `campaign`
68
+ - `fk_opportunities_contact` — btree, partial on `contact`
69
+ - `fk_opportunities_fork` — gin, partial on `fork`
70
+ - `fk_opportunities_ownergroup` — gin on `ownergroup`
71
+ - `i_opportunities_date` — btree on `date`
72
+ - `i_opportunities_nofork` — gin, partial on `fork`
73
+ - `i_opportunities_noowner` — gin, partial on `ownergroup`
74
+ - `s_opportunities_name` — gin on `name`
75
+ - `s_opportunities_opportunitynum` — gin, partial on `opportunitynum`
76
+
77
+ > Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
78
+
79
+ # Operations
80
+
81
+ - list: `listOpportunities`
82
+ - get: `getOpportunity`
83
+ - create: `createOpportunity`
84
+ - update: `updateOpportunity`
85
+ - delete: `deleteOpportunity`
86
+ - exists: `existsOpportunity`
87
+ <!-- okf:generated:end -->