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. |
Click to show internal directories.
Click to hide internal directories.