core/

directory
v0.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2026 License: Apache-2.0

Directories

Path Synopsis
application
archive
Package archive is the Hubtask archive format of backup-restore.md §3: what a backup writes and what a restore reads, as a reader and a writer over the backup target port.
Package archive is the Hubtask archive format of backup-restore.md §3: what a backup writes and what a restore reads, as a reader and a writer over the backup target port.
catalogue
Package catalogue is the list of every use case this build has, once.
Package catalogue is the list of every use case this build has, once.
condition
Package condition is the vocabulary an expression may use, and the shape of what it is told.
Package condition is the vocabulary an expression may use, and the shape of what it is told.
repository/activity
Package activity declares how an item's history is written and how it is read back.
Package activity declares how an item's history is written and how it is read back.
repository/admin
Package admin holds the control plane's outbound ports (multi-tenancy.md §5).
Package admin holds the control plane's outbound ports (multi-tenancy.md §5).
repository/audit
Package audit declares how the evidence trail is read back.
Package audit declares how the evidence trail is read back.
repository/automation
Package automation is the repository port of the rules (automation.md §1).
Package automation is the repository port of the rules (automation.md §1).
repository/backup
Package backup is the outbound port for the targets a tenant has configured.
Package backup is the outbound port for the targets a tenant has configured.
repository/idempotency
Package idempotency declares what the idempotency guard needs from storage.
Package idempotency declares what the idempotency guard needs from storage.
repository/identity
Package identity declares what the identity use cases need from storage.
Package identity declares what the identity use cases need from storage.
repository/importer
Package importer is the outbound side of an import: the run's repository, and the converter port - a foreign file in, archive records out.
Package importer is the outbound side of an import: the run's repository, and the converter port - a foreign file in, archive records out.
repository/integration
Package integration holds the repository ports of what reaches into this system from outside it: today the calendar feeds, later the webhook subscriptions beside them.
Package integration holds the repository ports of what reaches into this system from outside it: today the calendar feeds, later the webhook subscriptions beside them.
repository/job
Package job is the outbound port for background work as a caller sees it.
Package job is the outbound port for background work as a caller sees it.
repository/jumble
Package jumble is the repository port of the inbox (domain-model.md §2).
Package jumble is the repository port of the inbox (domain-model.md §2).
repository/lifecycle
Package lifecycle declares what the end of data's life needs stored: the instructions not to delete, and the record of what was deleted anyway.
Package lifecycle declares what the end of data's life needs stored: the instructions not to delete, and the record of what was deleted anyway.
repository/mail
Package mail is the store of a workspace's mail intake (ADR-0094): its settings, the receipts of what it received, and the lookups that route a message.
Package mail is the store of a workspace's mail intake (ADR-0094): its settings, the receipts of what it received, and the lookups that route a message.
repository/media
Package media declares what the media use cases need from storage of the *records* - the rows beside the bytes.
Package media declares what the media use cases need from storage of the *records* - the rows beside the bytes.
repository/meta
Package meta declares what the self-description needs from storage.
Package meta declares what the self-description needs from storage.
repository/notification
Package notification declares what the notification path needs from storage: the records it writes, and the preferences it honours.
Package notification declares what the notification path needs from storage: the records it writes, and the preferences it honours.
repository/outbox
Package outbox declares how a domain event leaves the write path.
Package outbox declares how a domain event leaves the write path.
repository/privacy
Package privacy declares what data subject rights need stored: the case, the consent, and the two marks an erasure leaves on things it does not delete.
Package privacy declares what data subject rights need stored: the case, the consent, and the two marks an erasure leaves on things it does not delete.
repository/quota
Package quota holds the outbound ports of the §4 limits (multi-tenancy.md).
Package quota holds the outbound ports of the §4 limits (multi-tenancy.md).
repository/sealing
Package sealing is the census a rotation ends on (ADR-0045, security.md §8.1): how many stored values still name each master key, and in which kind of value.
Package sealing is the census a rotation ends on (ADR-0045, security.md §8.1): how many stored values still name each master key, and in which kind of value.
repository/streams
Package streams holds the outbound port of the partitioned streams' maintenance: activity entries, outbox events and rule runs partition by month, the leader keeps the coming months existing, and the retention engine drops what has wholly aged out.
Package streams holds the outbound port of the partitioned streams' maintenance: activity entries, outbox events and rule runs partition by month, the leader keeps the coming months existing, and the retention engine drops what has wholly aged out.
repository/suggestion
Package suggestion is the outbound port of what AI proposed.
Package suggestion is the outbound port of what AI proposed.
repository/sync
Package sync declares what offline clients need recorded about a change.
Package sync declares what offline clients need recorded about a change.
repository/view
Package view declares how the application layer stores saved views.
Package view declares how the application layer stores saved views.
repository/voice
Package voice is the store of a workspace's voice settings (ADR-0093).
Package voice is the store of a workspace's voice settings (ADR-0093).
repository/work
Package work declares what the work management use cases need from storage.
Package work declares what the work management use cases need from storage.
service/access
Package access decides whether an actor may do something.
Package access decides whether an actor may do something.
service/admin
Package admin holds the control plane's use cases: the lifecycle of a tenant, as multi-tenancy.md §5 draws it.
Package admin holds the control plane's use cases: the lifecycle of a tenant, as multi-tenancy.md §5 draws it.
service/audit
Package audit is the trail as somebody reads it: a page of it, an archive of it, and the check that it has not been rewritten (audit.md §5).
Package audit is the trail as somebody reads it: a page of it, an archive of it, and the check that it has not been rewritten (audit.md §5).
service/automation
Package automation holds the use cases that write the rules (automation.md §1).
Package automation holds the use cases that write the rules (automation.md §1).
service/backup
Package backup is where an operator says where backups go, and finds out whether they can (backup-restore.md §2).
Package backup is where an operator says where backups go, and finds out whether they can (backup-restore.md §2).
service/idempotency
Package idempotency makes a repeated write harmless.
Package idempotency makes a repeated write harmless.
service/identity
Package identity holds the use cases that turn a credential into an actor.
Package identity holds the use cases that turn a credential into an actor.
service/importer
Package importer is an import from another system (backup-restore.md §9): the use case that accepts one, the read that answers its report, and the job that runs it.
Package importer is an import from another system (backup-restore.md §9): the use case that accepts one, the read that answers its report, and the job that runs it.
service/integration
Package integration holds the use cases that let another system reach into this one, and this one reach out: today the webhook subscriptions, later the trigger polling and the jumble's inbound routes.
Package integration holds the use cases that let another system reach into this one, and this one reach out: today the webhook subscriptions, later the trigger polling and the jumble's inbound routes.
service/job
Package job is the caller's half of the queue: finding out how a piece of background work is getting on, and stopping it.
Package job is the caller's half of the queue: finding out how a piece of background work is getting on, and stopping it.
service/jumble
Package jumble holds the use cases of the inbox (domain-model.md §5): something arrives, is listed, and becomes work or ages out.
Package jumble holds the use cases of the inbox (domain-model.md §5): something arrives, is listed, and becomes work or ages out.
service/lifecycle
Package lifecycle is where data stops existing: the hard delete, and the rules that decide when it is allowed (ADR-0020, data-retention.md).
Package lifecycle is where data stops existing: the hard delete, and the rules that decide when it is allowed (ADR-0020, data-retention.md).
service/mail
Package mail is the administration of a workspace's mail intake (ADR-0094): its settings, its log, a collection's handle, and the address a notification's reply goes to.
Package mail is the administration of a workspace's mail intake (ADR-0094): its settings, its log, a collection's handle, and the address a notification's reply goes to.
service/media
Package media is the upload life of a file: staged, carried to storage by somebody other than this server, confirmed, and eventually reclaimed (arc42 §8.4).
Package media is the upload life of a file: staged, carried to storage by somebody other than this server, confirmed, and eventually reclaimed (arc42 §8.4).
service/meta
Package meta answers what this installation is and what it can do.
Package meta answers what this installation is and what it can do.
service/notification
Package notification is the application half of the Notification context: the consumer that turns events into records, and the delivery that turns a record into a message.
Package notification is the application half of the Notification context: the consumer that turns events into records, and the delivery that turns a record into a message.
service/platform
Package platform writes the installation's events: what a provider's purchase platform learns about a workspace (UC-INS-14, multi-tenancy.md §4.3).
Package platform writes the installation's events: what a provider's purchase platform learns about a workspace (UC-INS-14, multi-tenancy.md §4.3).
service/privacy
Package privacy is data subject rights as use cases rather than as a support process (data-protection.md §4, ADR-0018 decision 4).
Package privacy is data subject rights as use cases rather than as a support process (data-protection.md §4, ADR-0018 decision 4).
service/quota
Package quota turns multi-tenancy.md §4's table into enforcement: per-tenant limits from `tenant.settings.quotas` with the mode's defaults, one resolution, one refusal shape.
Package quota turns multi-tenancy.md §4's table into enforcement: per-tenant limits from `tenant.settings.quotas` with the mode's defaults, one resolution, one refusal shape.
service/sealing
Package sealing is the half of a key rotation that lets it finish (ADR-0045, security.md §8.1).
Package sealing is the half of a key rotation that lets it finish (ADR-0045, security.md §8.1).
service/suggestion
Package suggestion is the application layer of what AI proposed.
Package suggestion is the application layer of what AI proposed.
service/sync
Package sync is the application half of the change stream: what a client is allowed to be told about, and where in the log it stands (ADR-0021).
Package sync is the application half of the change stream: what a client is allowed to be told about, and where in the log it stands (ADR-0021).
service/voice
Package voice turns what a person says to a voice assistant into work (ADR-0093): entries put on a list, a list read out, an entry ticked off, the day's due entries told.
Package voice turns what a person says to a voice assistant into work (ADR-0093): entries put on a list, a list read out, an entry ticked off, the day's due entries told.
service/work
Package work holds the work management use cases: containers and the items inside them.
Package work holds the work management use cases: containers and the items inside them.
shared
Package shared holds what every use case needs regardless of its context: who is acting, in which tenant, with which permissions, and in which language the answer is to be rendered.
Package shared holds what every use case needs regardless of its context: who is acting, in which tenant, with which permissions, and in which language the answer is to be rendered.
usecase
Package usecase is the catalogue: every use case the system has, once.
Package usecase is the catalogue: every use case the system has, once.
domain
event
Package event holds the domain events: what happened, in a form other systems can subscribe to.
Package event holds the domain events: what happened, in a form other systems can subscribe to.
model/activity
Package activity holds an item's own history: what happened to a piece of work, in the words the people working on it read (arc42 §5.2, the "Audit & Activity" context).
Package activity holds an item's own history: what happened to a piece of work, in the words the people working on it read (arc42 §5.2, the "Audit & Activity" context).
model/automation
Package automation holds the rule: what starts a run, what has to be true for it to go on, and what it then does (automation.md §1, ADR-0009).
Package automation holds the rule: what starts a run, what has to be true for it to go on, and what it then does (automation.md §1, ADR-0009).
model/backup
Package backup is where a backup goes and what has to be true before it may go there (backup-restore.md §2, ADR-0019).
Package backup is where a backup goes and what has to be true before it may go there (backup-restore.md §2, ADR-0019).
model/entitlement
Package entitlement holds the features a plan may leave out of a workspace (multi-tenancy.md §4.2), and what a workspace makes of the set its plan leaves out.
Package entitlement holds the features a plan may leave out of a workspace (multi-tenancy.md §4.2), and what a workspace makes of the set its plan leaves out.
model/identity
Package identity holds the model of who acts: accounts, their credentials, and the tokens that stand in for them when nobody is at a keyboard.
Package identity holds the model of who acts: accounts, their credentials, and the tokens that stand in for them when nobody is at a keyboard.
model/importer
Package importer is an import from another system (backup-restore.md §9): a file somebody exported elsewhere, converted into the records a backup archive holds and applied through the restore.
Package importer is an import from another system (backup-restore.md §9): a file somebody exported elsewhere, converted into the records a backup archive holds and applied through the restore.
model/integration
Package integration holds the model of what reaches into this system from outside it, or lets something outside read it: today the calendar feed, later the webhooks that share its table section in the schema.
Package integration holds the model of what reaches into this system from outside it, or lets something outside read it: today the calendar feed, later the webhooks that share its table section in the schema.
model/job
Package job is background work as the caller who asked for it sees it.
Package job is background work as the caller who asked for it sees it.
model/jumble
Package jumble is the inbox before the work exists (domain-model.md §2): entries arrive over four channels - a mail, a webhook, a quick capture, a plain API call - and become work items by conversion, or age out by dismissal.
Package jumble is the inbox before the work exists (domain-model.md §2): entries arrive over four channels - a mail, a webhook, a quick capture, a plain API call - and become work items by conversion, or age out by dismissal.
model/lifecycle
Package lifecycle is the bounded context that decides when data stops existing: retention rules, the safeguards that override them, and the record of what was removed (ADR-0020, data-retention.md).
Package lifecycle is the bounded context that decides when data stops existing: retention rules, the safeguards that override them, and the record of what was removed (ADR-0020, data-retention.md).
model/mail
Package mail is the mail intake's own rules (ADR-0094): where a message is meant to go - read off its subject and the address it was sent to - and who may write at all.
Package mail is the mail intake's own rules (ADR-0094): where a message is meant to go - read off its subject and the address it was sent to - and who may write at all.
model/media
Package media is the Media context's domain: what an uploaded object is, and how it may be served (arc42 §5.2).
Package media is the Media context's domain: what an uploaded object is, and how it may be served (arc42 §5.2).
model/notification
Package notification is the Notification context arc42 §5.2 names: what somebody is to be told, what they have said about being told it, and how far that got.
Package notification is the Notification context arc42 §5.2 names: what somebody is to be told, what they have said about being told it, and how far that got.
model/plan
Package plan holds a plan: a provider's group of workspaces with its own limits, locked values and the features it leaves out, between the installation and the workspace (multi-tenancy.md §4.2, ADR-0086).
Package plan holds a plan: a provider's group of workspaces with its own limits, locked values and the features it leaves out, between the installation and the workspace (multi-tenancy.md §4.2, ADR-0086).
model/privacy
Package privacy is the bounded context of data subject rights (data-protection.md §4, ADR-0018): the case somebody's exercised right becomes, the deadline it carries, and the consent that can be taken back.
Package privacy is the bounded context of data subject rights (data-protection.md §4, ADR-0018): the case somebody's exercised right becomes, the deadline it carries, and the consent that can be taken back.
model/shared
Package shared holds the vocabulary every bounded context needs: identifiers, locales, and the error model.
Package shared holds the vocabulary every bounded context needs: identifiers, locales, and the error model.
model/suggestion
Package suggestion is what AI proposed, and did not do (ADR-0012).
Package suggestion is what AI proposed, and did not do (ADR-0012).
model/sync
Package sync holds the offline synchronisation context's own entities (offline-sync.md §10): what the server keeps about the devices that synchronise, beside the change log they read.
Package sync holds the offline synchronisation context's own entities (offline-sync.md §10): what the server keeps about the devices that synchronise, beside the change log they read.
model/view
Package view holds the query language every view is drawn from: the filter grammar of api-guidelines.md §3, what may be asked of which field, and the bounds a query has to stay inside.
Package view holds the query language every view is drawn from: the filter grammar of api-guidelines.md §3, what may be asked of which field, and the bounds a query has to stay inside.
model/voice
Package voice is what a spoken sentence means to Hubtask (ADR-0093): the things named, their amounts and the place they go.
Package voice is what a spoken sentence means to Hubtask (ADR-0093): the things named, their amounts and the place they go.
model/work
Package work holds the model of what is being managed: containers, items, and the policy that says what each kind of item can do.
Package work holds the model of what is being managed: containers, items, and the policy that says what each kind of item can do.
service
Package service holds the domain services: the rules that belong to no single entity.
Package service holds the domain services: the rules that belong to no single entity.
port
ai
Package ai is the outbound half of ADR-0012: the port through which this product may ask a model something, and never a dependency of anything inwards of it.
Package ai is the outbound half of ADR-0012: the port through which this product may ask a model something, and never a dependency of anything inwards of it.
audit
Package audit is the port for the evidence trail (audit.md, ADR-0017).
Package audit is the port for the evidence trail (audit.md, ADR-0017).
backupstorage
Package backupstorage is the port a backup target sits behind (backup-restore.md §2, ADR-0019).
Package backupstorage is the port a backup target sits behind (backup-restore.md §2, ADR-0019).
clock
Package clock is the port for the one thing that makes otherwise pure code untestable: the current time.
Package clock is the port for the one thing that makes otherwise pure code untestable: the current time.
crypto
Package crypto is the port for keeping a value unreadable to whoever holds the storage it sits on (backup-restore.md §4, security.md §8).
Package crypto is the port for keeping a value unreadable to whoever holds the storage it sits on (backup-restore.md §4, security.md §8).
environment
Package environment is the port for the entire configuration.
Package environment is the port for the entire configuration.
eventbus
Package eventbus is the port for the delivery half of the outbox (ADR-0007).
Package eventbus is the port for the delivery half of the outbox (ADR-0007).
expression
Package expression is what a condition is, and nothing about how one is evaluated.
Package expression is what a condition is, and nothing about how one is evaluated.
health
Package health carries the health model from ADR-0016.
Package health carries the health model from ADR-0016.
httpclient
Package httpclient is the port for calls that leave the process: webhooks, automation actions, AI providers, OIDC discovery.
Package httpclient is the port for calls that leave the process: webhooks, automation actions, AI providers, OIDC discovery.
i18n
Package i18n is the port for the declared exception to rule 8.
Package i18n is the port for the declared exception to rule 8.
identityprovider
Package identityprovider is the relying-party half of ADR-0005, as the application layer needs it: send somebody to their company's provider, and turn what comes back into a verified identity.
Package identityprovider is the relying-party half of ADR-0005, as the application layer needs it: send somebody to their company's provider, and turn what comes back into a verified identity.
mail
Package mail is the port for the one notification channel that sends (arc42 §5.2).
Package mail is the port for the one notification channel that sends (arc42 §5.2).
mailbox
Package mailbox is how the mail intake reads a connected mailbox (ADR-0094 decision 1): sign in, take the messages not yet taken, move each to the done folder once it is filed.
Package mailbox is how the mail intake reads a connected mailbox (ADR-0094 decision 1): sign in, take the messages not yet taken, move each to the done folder once it is filed.
passkey
Package passkey is the seam the application layer checks a WebAuthn ceremony through (identity.md §23, ADR-0085).
Package passkey is the seam the application layer checks a WebAuthn ceremony through (identity.md §23, ADR-0085).
persistence
Package persistence is the port for transactional storage.
Package persistence is the port for transactional storage.
queue
Package queue is the port for work that happens outside a request: the job queue, the handlers that run on it, and the leader that exists exactly once (ADR-0008).
Package queue is the port for work that happens outside a request: the job queue, the handlers that run on it, and the leader that exists exactly once (ADR-0008).
recurrence
Package recurrence is the port for reading an RFC 5545 recurrence rule and turning it into the moments it means (ADR-0008, arc42 §11 R-07).
Package recurrence is the port for reading an RFC 5545 recurrence rule and turning it into the moments it means (ADR-0008, arc42 §11 R-07).
stepup
Package stepup is the seam a destructive act asks for a second, stronger proof of identity through (identity.md §16, backup-restore.md §8.3, security.md §5).
Package stepup is the seam a destructive act asks for a second, stronger proof of identity through (identity.md §16, backup-restore.md §8.3, security.md §5).
storage
Package storage is the port for object storage: the bytes a person attaches to their work (arc42 §5.2 Media, §8.4).
Package storage is the port for object storage: the bytes a person attaches to their work (arc42 §5.2 Media, §8.4).
text
Package text is the port for the two things the domain has to do to text and may not do itself (i18n-l10n.md §5, §7): bring an input to its Unicode normal form, and bring the domain half of an address to the ASCII form a mail server sees.
Package text is the port for the two things the domain has to do to text and may not do itself (i18n-l10n.md §5, §7): bring an input to its Unicode normal form, and bring the domain half of an address to the ASCII form a mail server sees.
shared
concurrency
Package concurrency is the only place in the project where a `go` statement may appear.
Package concurrency is the only place in the project where a `go` statement may appear.
correlation
Package correlation carries the request-scoped identifiers that every signal is joined on: the request ID and the tenant (observability-reliability.md §3.1).
Package correlation carries the request-scoped identifiers that every signal is joined on: the request ID and the tenant (observability-reliability.md §3.1).
secret
Package secret provides a type that cannot accidentally be written to a log.
Package secret provides a type that cannot accidentally be written to a log.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL