@zeyos/client 0.2.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.
Files changed (118) hide show
  1. package/CHANGELOG.md +33 -4
  2. package/README.md +31 -1
  3. package/agents/README.md +4 -0
  4. package/agents/shared/zeyos-entity-map.md +5 -1
  5. package/agents/shared/zeyos-entity-reference.md +89 -33
  6. package/agents/zeyos-mail-operations/SKILL.md +7 -1
  7. package/agents/zeyos-mail-operations/references/workflows.md +19 -2
  8. package/agents/zeyos-platform-and-schema/SKILL.md +1 -1
  9. package/agents/zeyos-platform-and-schema/references/workflows.md +21 -5
  10. package/agents/zeyos-time-tracking/SKILL.md +48 -0
  11. package/agents/zeyos-time-tracking/references/workflows.md +230 -0
  12. package/agents/zeyos-work-management/SKILL.md +5 -2
  13. package/agents/zeyos-work-management/references/workflows.md +54 -4
  14. package/docs/02-javascript-client/03-making-requests.md +46 -1
  15. package/docs/03-cli/02-commands.md +63 -1
  16. package/docs/03-cli/03-configuration.md +37 -5
  17. package/docs/04-agent-workflows/01-agent-quickstart.md +24 -0
  18. package/docs/04-agent-workflows/03-cli-coverage-and-escalation.md +3 -2
  19. package/docs/06-okf/01-overview.md +70 -0
  20. package/docs/06-okf/02-producing-and-consuming.md +46 -0
  21. package/docs/06-okf/03-keeping-fresh.md +53 -0
  22. package/docs/06-okf/04-loops.md +58 -0
  23. package/docs/06-okf/_category_.json +9 -0
  24. package/okf/concepts/counting-and-sums.md +10 -0
  25. package/okf/concepts/dates-unix-seconds.md +12 -0
  26. package/okf/concepts/enums.md +14 -0
  27. package/okf/concepts/filters-vs-filter.md +14 -0
  28. package/okf/concepts/index.md +8 -0
  29. package/okf/concepts/operationid-vocabulary.md +17 -0
  30. package/okf/concepts/visibility-column.md +13 -0
  31. package/okf/entities/accounts.md +82 -0
  32. package/okf/entities/actionsteps.md +84 -0
  33. package/okf/entities/addresses.md +50 -0
  34. package/okf/entities/applicationassets.md +43 -0
  35. package/okf/entities/applications.md +62 -0
  36. package/okf/entities/appointments.md +79 -0
  37. package/okf/entities/associations.md +41 -0
  38. package/okf/entities/binfiles.md +32 -0
  39. package/okf/entities/campaigns.md +66 -0
  40. package/okf/entities/categories.md +55 -0
  41. package/okf/entities/channels.md +54 -0
  42. package/okf/entities/comments.md +44 -0
  43. package/okf/entities/components.md +46 -0
  44. package/okf/entities/contacts.md +96 -0
  45. package/okf/entities/contacts2contacts.md +42 -0
  46. package/okf/entities/contracts.md +83 -0
  47. package/okf/entities/couponcodes.md +58 -0
  48. package/okf/entities/coupons.md +69 -0
  49. package/okf/entities/customfields.md +59 -0
  50. package/okf/entities/davservers.md +74 -0
  51. package/okf/entities/devices.md +65 -0
  52. package/okf/entities/documents.md +76 -0
  53. package/okf/entities/dunning.md +82 -0
  54. package/okf/entities/dunning2transactions.md +46 -0
  55. package/okf/entities/entities2channels.md +42 -0
  56. package/okf/entities/events.md +57 -0
  57. package/okf/entities/feedservers.md +67 -0
  58. package/okf/entities/files.md +50 -0
  59. package/okf/entities/follows.md +40 -0
  60. package/okf/entities/forks.md +54 -0
  61. package/okf/entities/groups.md +48 -0
  62. package/okf/entities/groups2users.md +44 -0
  63. package/okf/entities/index.md +93 -0
  64. package/okf/entities/invitations.md +53 -0
  65. package/okf/entities/items.md +95 -0
  66. package/okf/entities/ledgers.md +56 -0
  67. package/okf/entities/likes.md +40 -0
  68. package/okf/entities/links.md +70 -0
  69. package/okf/entities/mailinglists.md +67 -0
  70. package/okf/entities/mailingrecipients.md +45 -0
  71. package/okf/entities/mailservers.md +77 -0
  72. package/okf/entities/messagereads.md +40 -0
  73. package/okf/entities/messages.md +104 -0
  74. package/okf/entities/notes.md +73 -0
  75. package/okf/entities/objects.md +70 -0
  76. package/okf/entities/opportunities.md +87 -0
  77. package/okf/entities/participants.md +52 -0
  78. package/okf/entities/payments.md +76 -0
  79. package/okf/entities/permissions.md +46 -0
  80. package/okf/entities/pricelists.md +70 -0
  81. package/okf/entities/pricelists2accounts.md +46 -0
  82. package/okf/entities/prices.md +49 -0
  83. package/okf/entities/projects.md +72 -0
  84. package/okf/entities/records.md +75 -0
  85. package/okf/entities/relateditems.md +43 -0
  86. package/okf/entities/resources.md +55 -0
  87. package/okf/entities/services.md +64 -0
  88. package/okf/entities/stocktransactions.md +72 -0
  89. package/okf/entities/storages.md +56 -0
  90. package/okf/entities/suppliers.md +51 -0
  91. package/okf/entities/tasks.md +86 -0
  92. package/okf/entities/tickets.md +86 -0
  93. package/okf/entities/transactions.md +118 -0
  94. package/okf/entities/users.md +66 -0
  95. package/okf/entities/weblets.md +66 -0
  96. package/okf/index.md +11 -0
  97. package/okf/log.md +4 -0
  98. package/okf/metrics/cash-received.md +10 -0
  99. package/okf/metrics/index.md +6 -0
  100. package/okf/metrics/invoiced-net-revenue.md +16 -0
  101. package/okf/metrics/open-customers.md +14 -0
  102. package/okf/metrics/overdue-receivables.md +12 -0
  103. package/okf/playbooks/customer-360.md +12 -0
  104. package/okf/playbooks/index.md +5 -0
  105. package/okf/playbooks/revenue-this-year.md +19 -0
  106. package/okf/playbooks/ticket-work-packet.md +11 -0
  107. package/package.json +9 -5
  108. package/scripts/data/okf-curation.mjs +258 -0
  109. package/scripts/generate-client.mjs +4 -275
  110. package/scripts/generate-okf.mjs +241 -0
  111. package/scripts/lib/okf.mjs +272 -0
  112. package/scripts/lib/spec-model.mjs +325 -0
  113. package/src/index.js +4 -0
  114. package/src/runtime/client.js +199 -18
  115. package/src/runtime/okf.js +237 -0
  116. package/samples/missioncontrol/README.md +0 -106
  117. package/samples/missioncontrol/fetch-data.mjs +0 -341
  118. package/samples/missioncontrol/index.html +0 -419
@@ -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 -->