@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.
Files changed (102) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +31 -1
  3. package/agents/README.md +2 -0
  4. package/agents/shared/zeyos-entity-map.md +5 -1
  5. package/agents/shared/zeyos-entity-reference.md +89 -33
  6. package/docs/03-cli/02-commands.md +28 -0
  7. package/docs/06-okf/01-overview.md +70 -0
  8. package/docs/06-okf/02-producing-and-consuming.md +46 -0
  9. package/docs/06-okf/03-keeping-fresh.md +53 -0
  10. package/docs/06-okf/04-loops.md +58 -0
  11. package/docs/06-okf/_category_.json +9 -0
  12. package/okf/concepts/counting-and-sums.md +10 -0
  13. package/okf/concepts/dates-unix-seconds.md +12 -0
  14. package/okf/concepts/enums.md +14 -0
  15. package/okf/concepts/filters-vs-filter.md +14 -0
  16. package/okf/concepts/index.md +8 -0
  17. package/okf/concepts/operationid-vocabulary.md +17 -0
  18. package/okf/concepts/visibility-column.md +13 -0
  19. package/okf/entities/accounts.md +82 -0
  20. package/okf/entities/actionsteps.md +84 -0
  21. package/okf/entities/addresses.md +50 -0
  22. package/okf/entities/applicationassets.md +43 -0
  23. package/okf/entities/applications.md +62 -0
  24. package/okf/entities/appointments.md +79 -0
  25. package/okf/entities/associations.md +41 -0
  26. package/okf/entities/binfiles.md +32 -0
  27. package/okf/entities/campaigns.md +66 -0
  28. package/okf/entities/categories.md +55 -0
  29. package/okf/entities/channels.md +54 -0
  30. package/okf/entities/comments.md +44 -0
  31. package/okf/entities/components.md +46 -0
  32. package/okf/entities/contacts.md +96 -0
  33. package/okf/entities/contacts2contacts.md +42 -0
  34. package/okf/entities/contracts.md +83 -0
  35. package/okf/entities/couponcodes.md +58 -0
  36. package/okf/entities/coupons.md +69 -0
  37. package/okf/entities/customfields.md +59 -0
  38. package/okf/entities/davservers.md +74 -0
  39. package/okf/entities/devices.md +65 -0
  40. package/okf/entities/documents.md +76 -0
  41. package/okf/entities/dunning.md +82 -0
  42. package/okf/entities/dunning2transactions.md +46 -0
  43. package/okf/entities/entities2channels.md +42 -0
  44. package/okf/entities/events.md +57 -0
  45. package/okf/entities/feedservers.md +67 -0
  46. package/okf/entities/files.md +50 -0
  47. package/okf/entities/follows.md +40 -0
  48. package/okf/entities/forks.md +54 -0
  49. package/okf/entities/groups.md +48 -0
  50. package/okf/entities/groups2users.md +44 -0
  51. package/okf/entities/index.md +93 -0
  52. package/okf/entities/invitations.md +53 -0
  53. package/okf/entities/items.md +95 -0
  54. package/okf/entities/ledgers.md +56 -0
  55. package/okf/entities/likes.md +40 -0
  56. package/okf/entities/links.md +70 -0
  57. package/okf/entities/mailinglists.md +67 -0
  58. package/okf/entities/mailingrecipients.md +45 -0
  59. package/okf/entities/mailservers.md +77 -0
  60. package/okf/entities/messagereads.md +40 -0
  61. package/okf/entities/messages.md +104 -0
  62. package/okf/entities/notes.md +73 -0
  63. package/okf/entities/objects.md +70 -0
  64. package/okf/entities/opportunities.md +87 -0
  65. package/okf/entities/participants.md +52 -0
  66. package/okf/entities/payments.md +76 -0
  67. package/okf/entities/permissions.md +46 -0
  68. package/okf/entities/pricelists.md +70 -0
  69. package/okf/entities/pricelists2accounts.md +46 -0
  70. package/okf/entities/prices.md +49 -0
  71. package/okf/entities/projects.md +72 -0
  72. package/okf/entities/records.md +75 -0
  73. package/okf/entities/relateditems.md +43 -0
  74. package/okf/entities/resources.md +55 -0
  75. package/okf/entities/services.md +64 -0
  76. package/okf/entities/stocktransactions.md +72 -0
  77. package/okf/entities/storages.md +56 -0
  78. package/okf/entities/suppliers.md +51 -0
  79. package/okf/entities/tasks.md +86 -0
  80. package/okf/entities/tickets.md +86 -0
  81. package/okf/entities/transactions.md +118 -0
  82. package/okf/entities/users.md +66 -0
  83. package/okf/entities/weblets.md +66 -0
  84. package/okf/index.md +11 -0
  85. package/okf/log.md +4 -0
  86. package/okf/metrics/cash-received.md +10 -0
  87. package/okf/metrics/index.md +6 -0
  88. package/okf/metrics/invoiced-net-revenue.md +16 -0
  89. package/okf/metrics/open-customers.md +14 -0
  90. package/okf/metrics/overdue-receivables.md +12 -0
  91. package/okf/playbooks/customer-360.md +12 -0
  92. package/okf/playbooks/index.md +5 -0
  93. package/okf/playbooks/revenue-this-year.md +19 -0
  94. package/okf/playbooks/ticket-work-packet.md +11 -0
  95. package/package.json +9 -2
  96. package/scripts/data/okf-curation.mjs +258 -0
  97. package/scripts/generate-client.mjs +4 -275
  98. package/scripts/generate-okf.mjs +241 -0
  99. package/scripts/lib/okf.mjs +272 -0
  100. package/scripts/lib/spec-model.mjs +325 -0
  101. package/src/index.js +4 -0
  102. package/src/runtime/okf.js +237 -0
@@ -0,0 +1,93 @@
1
+ # CRM & Customer
2
+
3
+ * [Accounts](accounts.md) - Customer, supplier, prospect, or employee master records.
4
+ * [Addresses](addresses.md) - Additional address records linked to accounts or contacts.
5
+ * [Contacts](contacts.md) - People linked to accounts.
6
+ * [Contacts To Contacts](contacts2contacts.md) - Contact-to-contact relationships.
7
+ * [Contracts](contracts.md) - Long-lived commercial agreements.
8
+ * [Opportunities](opportunities.md) - Sales pipeline and deal records.
9
+
10
+ # Work & Delivery
11
+
12
+ * [Action Steps](actionsteps.md) - Cross-record follow-up work items with assignee, due date, status, and effort.
13
+ * [Appointments](appointments.md) - Calendar appointments.
14
+ * [Invitations](invitations.md) - Appointment invitations.
15
+ * [Projects](projects.md) - Top-level initiatives.
16
+ * [Tasks](tasks.md) - Actionable delivery work.
17
+ * [Tickets](tickets.md) - Support or service work items.
18
+
19
+ # Messaging
20
+
21
+ * [Mail Servers](mailservers.md) - Mail server definitions.
22
+ * [Message Reads](messagereads.md) - Read-tracking records for messages.
23
+ * [Messages](messages.md) - Email and message records.
24
+
25
+ # Outreach
26
+
27
+ * [Campaigns](campaigns.md) - Marketing or outreach campaigns.
28
+ * [Mailing Lists](mailinglists.md) - Mailing list definitions.
29
+ * [Mailing Recipients](mailingrecipients.md) - Recipient records for a message.
30
+ * [Participants](participants.md) - Contacts enrolled in campaigns or mailing lists.
31
+
32
+ # Knowledge
33
+
34
+ * [Documents](documents.md) - Formal file-like business documents.
35
+ * [Files](files.md) - Attachments linked to a record or comment.
36
+ * [Notes](notes.md) - Text-centric internal knowledge items.
37
+
38
+ # Collaboration
39
+
40
+ * [Channels](channels.md) - Collaboration or distribution channels.
41
+ * [Comments](comments.md) - Record-linked comments.
42
+ * [Entities To Channels](entities2channels.md) - Junction between records and channels.
43
+ * [Events](events.md) - Generic event records attached to entities.
44
+ * [Follows](follows.md) - Follow/watch subscriptions on entities.
45
+ * [Likes](likes.md) - Lightweight positive reactions on records.
46
+ * [Records](records.md) - Generic feed and discussion records with entity/index references.
47
+
48
+ # Billing & Payments
49
+
50
+ * [Ledgers](ledgers.md) - Payment ledger definitions.
51
+ * [Payments](payments.md) - Cash movement records.
52
+ * [Transactions](transactions.md) - Billing, procurement, or production business transactions.
53
+
54
+ # Collections
55
+
56
+ * [Dunning Notices](dunning.md) - Collection or dunning notices.
57
+ * [Dunning To Transactions](dunning2transactions.md) - Dunning-to-transaction junction.
58
+
59
+ # Commerce & Inventory
60
+
61
+ * [Categorys](categories.md) - Category definitions.
62
+ * [Components](components.md) - Item-to-item composition records (BOM/kit).
63
+ * [Coupon Codes](couponcodes.md) - Codes under a coupon definition.
64
+ * [Coupons](coupons.md) - Coupon definitions.
65
+ * [Items](items.md) - Product and service catalog entries.
66
+ * [Price Lists](pricelists.md) - Price list definitions.
67
+ * [Price Lists To Accounts](pricelists2accounts.md) - Account-to-price-list assignments.
68
+ * [Prices](prices.md) - Item prices within a price list.
69
+ * [Related Items](relateditems.md) - Related product links (cross-sell, substitute, accessory).
70
+ * [Stock Transactions](stocktransactions.md) - Inventory movements.
71
+ * [Storages](storages.md) - Inventory storage locations.
72
+ * [Suppliers](suppliers.md) - Supplier-to-item links.
73
+
74
+ # Platform & Schema
75
+
76
+ * [Application Assets](applicationassets.md) - Assets linked to an application.
77
+ * [Applications](applications.md) - Application definitions.
78
+ * [Associations](associations.md) - Generic cross-entity relation records with metadata.
79
+ * [Bin Files](binfiles.md) - Binary file storage records.
80
+ * [Custom Fields](customfields.md) - Custom field definitions.
81
+ * [DAVServers](davservers.md) - DAV (calendar/contact sync) server definitions.
82
+ * [Devices](devices.md) - Inventory device records.
83
+ * [Feed Servers](feedservers.md) - Feed server definitions.
84
+ * [Forks](forks.md) - Module/fork definitions with identifiers and module names.
85
+ * [Groups](groups.md) - User groups.
86
+ * [Groups To Users](groups2users.md) - Group membership junction.
87
+ * [Links](links.md) - Link records with name and description.
88
+ * [Objects](objects.md) - Custom object records with arbitrary JSON payloads.
89
+ * [Permissions](permissions.md) - Group-level permission grants.
90
+ * [Resources](resources.md) - Named resources linked to an application or standalone.
91
+ * [Services](services.md) - Hook, timing, or remote-call services.
92
+ * [Users](users.md) - System users.
93
+ * [Weblets](weblets.md) - UI modules with view/type metadata.
@@ -0,0 +1,53 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Invitations
4
+ description: Appointment invitations.
5
+ resource: zeyos://api/invitations
6
+ tags: [work, generated]
7
+ api_backed: true
8
+ list_operation: listInvitations
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
+ | `appointment` | integer | no | — | yes | [appointments](/entities/appointments.md) |
22
+ | `contact` | integer | yes | — | yes | [contacts](/entities/contacts.md) |
23
+ | `name` | text | no | — | — | — |
24
+ | `email` | text | no | `''` | — | — |
25
+ | `flag` | smallint | no | `0` | — | — |
26
+
27
+ # Foreign Keys
28
+
29
+ - `appointment` → [appointments](/entities/appointments.md) (`appointments.ID`)
30
+ - `contact` → [contacts](/entities/contacts.md) (`contacts.ID`)
31
+
32
+ # Enums
33
+
34
+ ### `flag`
35
+
36
+ `0` = UNANSWERED · `1` = CONFIRMED · `2` = REJECTED
37
+
38
+ # Indexes
39
+
40
+ - `fk_invitations_appointment` — btree on `appointment`
41
+ - `fk_invitations_contact` — btree, partial on `contact`
42
+
43
+ > Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
44
+
45
+ # Operations
46
+
47
+ - list: `listInvitations`
48
+ - get: `getInvitation`
49
+ - create: `createInvitation`
50
+ - update: `updateInvitation`
51
+ - delete: `deleteInvitation`
52
+ - exists: `existsInvitation`
53
+ <!-- okf:generated:end -->
@@ -0,0 +1,95 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Items
4
+ description: Product and service catalog entries.
5
+ resource: zeyos://api/items
6
+ tags: [commerce, generated]
7
+ api_backed: true
8
+ list_operation: listItems
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
+ | `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
22
+ | `lastmodified` | bigint | no | `date_part('epoch', now())` | — | — |
23
+ | `model` | integer | yes | — | yes | [items](/entities/items.md) |
24
+ | `picbinfile` | integer | yes | — | yes | [binfiles](/entities/binfiles.md) |
25
+ | `visibility` | smallint | no | `0` | — | — |
26
+ | `name` | text | no | — | yes | — |
27
+ | `manufacturer` | text | no | `''` | yes | — |
28
+ | `itemnum` | text | no | `''` | yes | — |
29
+ | `barcode` | text | no | `''` | yes | — |
30
+ | `type` | smallint | no | `0` | — | — |
31
+ | `forcestock` | smallint | yes | — | — | — |
32
+ | `applicability` | smallint | no | `0` | — | — |
33
+ | `unit` | character varying(3) | no | `''` | — | — |
34
+ | `sellingprice` | double precision | no | `0` | — | — |
35
+ | `purchaseprice` | double precision | no | `0` | — | — |
36
+ | `taxrate` | double precision | yes | — | — | — |
37
+ | `weight` | double precision | no | `0` | — | — |
38
+ | `classcode` | text | no | `''` | — | — |
39
+ | `tariffcode` | text | no | `''` | — | — |
40
+ | `origin` | character varying(2) | no | `''` | — | — |
41
+ | `description` | text | no | `''` | — | — |
42
+ | `foreigntaxrates` | json | yes | — | — | — |
43
+
44
+ # Foreign Keys
45
+
46
+ - `fork` → [forks](/entities/forks.md) (`forks.ID`)
47
+ - `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
48
+ - `model` → [items](/entities/items.md) (`items.ID`)
49
+ - `picbinfile` → [binfiles](/entities/binfiles.md) (`binfiles.ID`)
50
+
51
+ # Enums
52
+
53
+ ### `visibility`
54
+
55
+ `0` = REGULAR · `1` = ARCHIVED · `2` = DELETED
56
+
57
+ ### `type`
58
+
59
+ `0` = SIMPLE · `1` = SERIALS · `2` = CHARGES · `3` = SERIALSANDCHARGES · `4` = SET · `5` = CONTAINER · `6` = NOSTOCK · `7` = MODEL
60
+
61
+ ### `forcestock`
62
+
63
+ `0` = STORAGE · `1` = LOCATION
64
+
65
+ ### `applicability`
66
+
67
+ `0` = ALWAYS · `1` = NEVER · `2` = BILLINGONLY · `3` = PROCUREMENTONLY
68
+
69
+ # Indexes
70
+
71
+ - `fk_items_fork` — gin, partial on `fork`
72
+ - `fk_items_model` — btree, partial on `model`
73
+ - `fk_items_ownergroup` — gin on `ownergroup`
74
+ - `fk_items_picbinfile` — btree, partial on `picbinfile`
75
+ - `i_items_barcode` — btree, partial on `barcode`
76
+ - `i_items_itemnum` — btree, partial on `itemnum`
77
+ - `i_items_name` — btree on `name`
78
+ - `i_items_nofork` — gin, partial on `fork`
79
+ - `i_items_noowner` — gin, partial on `ownergroup`
80
+ - `s_items_barcode` — gin, partial on `barcode`
81
+ - `s_items_itemnum` — gin, partial on `itemnum`
82
+ - `s_items_manufacturer` — gin, partial on `manufacturer`
83
+ - `s_items_name` — gin on `name`
84
+
85
+ > Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
86
+
87
+ # Operations
88
+
89
+ - list: `listItems`
90
+ - get: `getItem`
91
+ - create: `createItem`
92
+ - update: `updateItem`
93
+ - delete: `deleteItem`
94
+ - exists: `existsItem`
95
+ <!-- okf:generated:end -->
@@ -0,0 +1,56 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Ledgers
4
+ description: Payment ledger definitions.
5
+ resource: zeyos://api/ledgers
6
+ tags: [billing, generated]
7
+ api_backed: true
8
+ list_operation: listLedgers
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
+ | `creationdate` | bigint | no | `date_part('epoch', now())` | — | — |
22
+ | `lastmodified` | bigint | no | `date_part('epoch', now())` | — | — |
23
+ | `visibility` | smallint | no | `0` | — | — |
24
+ | `name` | text | no | — | yes | — |
25
+ | `description` | text | no | `''` | — | — |
26
+
27
+ # Foreign Keys
28
+
29
+ - `fork` → [forks](/entities/forks.md) (`forks.ID`)
30
+ - `ownergroup` → [groups](/entities/groups.md) (`groups.ID`)
31
+
32
+ # Enums
33
+
34
+ ### `visibility`
35
+
36
+ `0` = REGULAR · `1` = ARCHIVED · `2` = DELETED
37
+
38
+ # Indexes
39
+
40
+ - `fk_ledgers_fork` — gin, partial on `fork`
41
+ - `fk_ledgers_ownergroup` — gin on `ownergroup`
42
+ - `i_ledgers_nofork` — gin, partial on `fork`
43
+ - `i_ledgers_noowner` — gin, partial on `ownergroup`
44
+ - `s_ledgers_name` — gin on `name`
45
+
46
+ > Partial/GIN indexes back the `filters` (plural) query form for foreign-key fields. See [filters-vs-filter](/concepts/filters-vs-filter.md).
47
+
48
+ # Operations
49
+
50
+ - list: `listLedgers`
51
+ - get: `getLedger`
52
+ - create: `createLedger`
53
+ - update: `updateLedger`
54
+ - delete: `deleteLedger`
55
+ - exists: `existsLedger`
56
+ <!-- okf:generated:end -->
@@ -0,0 +1,40 @@
1
+ ---
2
+ type: ZeyOS Entity
3
+ title: Likes
4
+ description: Lightweight positive reactions on records.
5
+ resource: zeyos://api/likes
6
+ tags: [collaboration, generated]
7
+ api_backed: true
8
+ list_operation: listLikes
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
+ | `record` | bigint | no | — | yes | [records](/entities/records.md) |
22
+
23
+ # Foreign Keys
24
+
25
+ - `creator` → [users](/entities/users.md) (`users.ID`)
26
+ - `record` → [records](/entities/records.md) (`records.ID`)
27
+
28
+ # Indexes
29
+
30
+ - `u_likes_record_creator` — btree, unique on `record, creator`
31
+
32
+ # Operations
33
+
34
+ - list: `listLikes`
35
+ - get: `getLike`
36
+ - create: `createLike`
37
+ - update: `updateLike`
38
+ - delete: `deleteLike`
39
+ - exists: `existsLike`
40
+ <!-- okf:generated:end -->
@@ -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 -->