modules

package
v0.0.0-...-d09923a Latest Latest
Warning

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

Go to latest
Published: Nov 5, 2026 License: LGPL-2.1 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Auditable

type Auditable interface {
	SetCreatedUtcNow()
	SetUpdatedUtcNow()
}

type Copiable

type Copiable interface {
	CopyTo(destPtr any)
	CopyFrom(sourcePtr any) any
}

type DefaultConfig

type DefaultConfig []byte

type DomainModel

type DomainModel interface {
	PrimaryKey() ValueObject
	Clone() any
	Validate(forEdit bool) error
}

type DynamicModule

type DynamicModule interface {
	Deps() []string
	// LabelKey is the translation key.
	LabelKey() string
	Name() string
	Init() error
	IsInternal() bool
	RegisterModels() error
	Version() semver.SemVer
	// ModelPrefixes returns the prefixes this module's schemas are named with, without a
	// trailing separator - GenSql appends the "_" itself. Most modules own one prefix, their
	// name; a module made of parts (commerce) owns one per part.
	ModelPrefixes() []string
	// HasUi reports whether the module has a frontend micro-app, so Module Home lists it.
	HasUi() bool
	// Category is the product line the module ships with; Module Home groups modules by it.
	Category() ModuleCategory
}

type InCodeModule

type InCodeModule interface {
	Deps() []string
	// Deprecated: Use Name() instead.
	LabelKey() string
	Name() string
	Init() error
	IsInternal() bool
	Version() semver.SemVer
	// ModelPrefixes returns the prefixes this module's schemas are named with, without a
	// trailing separator - GenSql appends the "_" itself. Most modules own one prefix, their
	// name; a module made of parts (commerce) owns one per part.
	ModelPrefixes() []string
	// HasUi reports whether the module has a frontend micro-app, so Module Home lists it.
	HasUi() bool
	// Category is the product line the module ships with; Module Home groups modules by it.
	Category() ModuleCategory
}

type InCodeModuleAppStarted

type InCodeModuleAppStarted interface {
	OnAppStarted() error
}

type InCodeModuleAppStopping

type InCodeModuleAppStopping interface {
	OnAppStopping(ctx context.Context) error
}

InCodeModuleAppStopping is an optional hook, the counterpart to InCodeModuleAppStarted, invoked after the OS termination signal and before the HTTP server shuts down. A module that owns background goroutines implements it to stop accepting new work and drain what is already in flight.

It is best-effort. Every module shares one deadline carried by ctx, and a module that blocks past it is abandoned rather than allowed to hold up the shutdown of the rest. A module whose work must survive an abrupt stop has to be recoverable from persisted state; this hook shortens the window in which that recovery is needed, it does not remove it.

type InCodeModuleDependants

type InCodeModuleDependants interface {
	Dependants() []string
}

InCodeModuleDependants is the optional counterpart to Deps(): the modules that reference THIS module's resources, declared by this module rather than by them.

The two lists answer opposite questions and neither can be derived from the other. Deps() says what this module needs in order to start; Dependants() says who must be consulted before one of its resources is deleted. A dependency graph cannot answer the second question — inventory depending on essential says nothing about who depends on inventory — so the list is hard-coded and owned by the module whose resources are at stake.

The names are canonical module names, matching Name(). A name that is not loaded in this binary is skipped rather than rejected: the same module ships in binaries with different module sets, and a resource whose consumer is absent has no consumer to ask.

type InCodeModuleRegisterLanguage

type InCodeModuleRegisterLanguage interface {
	RegisterLanguage() model.LanguageTranslation
}

InCodeModuleRegisterLanguage is optional: a module returns its own translations, per language code (e.g. "en-US"). Essential collects them in OnAppStarted and serves them under the module's Name(), so a module ships its translations without touching essential.

A language essential already embeds for that module, or one registered twice, fails startup: every translation has exactly one source.

type JSON

type JSON map[string]any

type ModuleCategory

type ModuleCategory string

ModuleCategory groups modules by the product line they belong to. The repository a module lives in decides it, except a shadow module, which keeps the category of the base it replaces.

const (
	ModuleCategoryFoundation  ModuleCategory = "foundation"
	ModuleCategoryCoremart    ModuleCategory = "coremart"
	ModuleCategoryCoreparking ModuleCategory = "coreparking"
	ModuleCategoryItInfra     ModuleCategory = "itinfra"
)

type ModuleDependantRegistry

type ModuleDependantRegistry struct {
	// contains filtered or unexported fields
}

ModuleDependantRegistry answers "who references this module's resources", which a module asks before deleting one of them. It is built once at startup from every module implementing InCodeModuleDependants and is read-only afterwards.

Absent dependants are kept out of the answer rather than rejected. A module's dependant list is written once and ships in every binary, but the binaries load different module sets — coremart runs the vending machine, nikkierp does not — so naming a module that this binary did not load is a legitimate state, not a misconfiguration. Only the names that are actually loaded can answer a usage check, and only those are returned.

func NewModuleDependantRegistry

func NewModuleDependantRegistry(mods []InCodeModule) (*ModuleDependantRegistry, error)

NewModuleDependantRegistry collects the dependant lists and validates them against the loaded set. It rejects what is certainly wrong — a module naming itself, or naming the same dependant twice — and reports what is merely unusable here, so the caller can log it.

func (*ModuleDependantRegistry) AbsentDependants

func (this *ModuleDependantRegistry) AbsentDependants(moduleName string) []string

AbsentDependants returns the names moduleName declared that this binary did not load. It exists so startup can log them: the list is not an error, but a name that is absent because it was misspelled looks exactly like one that is absent by design, and the log is what makes the difference visible.

func (*ModuleDependantRegistry) GetModuleDependants

func (this *ModuleDependantRegistry) GetModuleDependants(moduleName string) []string

GetModuleDependants returns the loaded modules that may reference moduleName's resources. An unknown module and one with no dependants both answer empty, which is the same instruction to the caller: there is nobody to ask.

func (*ModuleDependantRegistry) OwnersWithAbsentDependants

func (this *ModuleDependantRegistry) OwnersWithAbsentDependants() []string

OwnersWithAbsentDependants lists, in a stable order, the modules that declared a dependant this binary did not load.

type SoftDeletable

type SoftDeletable interface {
	SetDeletedUtcNow()
}

type ValueObject

type ValueObject interface {
	// Value() (any, error)
	Json() any
	String() string
}

Directories

Path Synopsis
Package accounting owns tax: master data, effective-dated configuration, determination rules and the calculation engine.
Package accounting owns tax: master data, effective-dated configuration, determination rules and the calculation engine.
app
Package app holds the Accounting application services: the layer that authorizes a request and then delegates to a domain service.
Package app holds the Accounting application services: the layer that authorizes a request and then delegates to a domain service.
domain/services/tax
Package tax implements determination, calculation, rounding and reversal, applied in that order.
Package tax implements determination, calculation, rounding and reversal, applied in that order.
domain/settings
Package settings declares what an organization may configure about its own tax handling.
Package settings declares what an organization may configure about its own tax handling.
dynamicengines
Package dynamicengines declares the thirteen tax configuration onions Accounting serves through the composable resource engine, and registers them into the dependency container during Init().
Package dynamicengines declares the thirteen tax configuration onions Accounting serves through the composable resource engine, and registers them into the dependency container during Init().
infra/defaults
Package defaults holds the records every new organization starts with, one `<schema>.json` file per resource.
Package defaults holds the records every new organization starts with, one `<schema>.json` file per resource.
infra/external
Package external binds Accounting's local ports to the services other modules publish.
Package external binds Accounting's local ports to the services other modules publish.
interfaces/currency
Package currency publishes which currency an organization keeps its books in.
Package currency publishes which currency an organization keeps its books in.
interfaces/tax
Package tax is the port other modules consume to have tax determined and calculated.
Package tax is the port other modules consume to have tax determined and calculated.
interfaces/taxconfig
Package taxconfig declares the layers of the thirteen tax configuration resources Accounting serves through the composable resource engine at /v1/accounting/{schema_name}: a repository, a domain service carrying the lifecycle and integrity rules, and the authorized application service.
Package taxconfig declares the layers of the thirteen tax configuration resources Accounting serves through the composable resource engine at /v1/accounting/{schema_name}: a repository, a domain service carrying the lifecycle and integrity rules, and the authorized application service.
Package auditlog records who did what to which record: every mutation the composable engine performs, the reads a resource opts into, and the custom actions that report themselves.
Package auditlog records who did what to which record: every mutation the composable engine performs, the reads a resource opts into, and the custom actions that report themselves.
app
dynamicengines
Package dynamicengines declares the resource onion Audit Log serves through the composable resource engine, and registers it and its typed layers into the dependency container.
Package dynamicengines declares the resource onion Audit Log serves through the composable resource engine, and registers it and its typed layers into the dependency container.
interfaces/action
Package action declares the layers of the auditlog_action resource: one row per audited action.
Package action declares the layers of the auditlog_action resource: one row per audited action.
transport
Package transport subscribes Audit Log to the org lifecycle commands and mounts its routes.
Package transport subscribes Audit Log to the org lifecycle commands and mounts its routes.
Package commerce is one module made of three parts: inventory, purchase and sales.
Package commerce is one module made of three parts: inventory, purchase and sales.
infra
Package infra binds the ports every part of Commerce consumes.
Package infra binds the ports every part of Commerce consumes.
infra/inventory/defaults
Package defaults holds the records every new organization starts with, one `<schema>.json` file per resource.
Package defaults holds the records every new organization starts with, one `<schema>.json` file per resource.
infra/inventory/external
Package external binds Inventory's outbound ports to the services other modules and the core publish.
Package external binds Inventory's outbound ports to the services other modules and the core publish.
infra/inventory/external/message
Package message speaks the broker's protocol for Inventory's integration event port.
Package message speaks the broker's protocol for Inventory's integration event port.
infra/purchase/external
Package external binds Purchase's local ports to the services other modules publish.
Package external binds Purchase's local ports to the services other modules publish.
infra/sales/defaults
Package defaults holds the records every new organization starts with, one `<schema>.json` file per resource.
Package defaults holds the records every new organization starts with, one `<schema>.json` file per resource.
infra/sales/external
Package external binds Sales' local ports to the services other modules publish.
Package external binds Sales' local ports to the services other modules publish.
infra/sales/external/invoicing
Package invoicing binds Sales' fiscal-document port to whoever issues the documents.
Package invoicing binds Sales' fiscal-document port to whoever issues the documents.
infra/sales/external/message
Package message speaks the broker's protocol for Sales' integration event port.
Package message speaks the broker's protocol for Sales' integration event port.
infra/sales/repository
The only raw SQL of the promotion family, a deliberate exception to the engine-first rule: taking the last use of a promotion or voucher safely needs UPDATE ...
The only raw SQL of the promotion family, a deliberate exception to the engine-first rule: taking the last use of a promotion or voucher safely needs UPDATE ...
infra/sequenceusage
Package sequenceusage helps a Commerce part answer Essential's "is this sequence definition still in use" (usagecheck.ResourceSequenceDefinition), asked before a definition is archived.
Package sequenceusage helps a Commerce part answer Essential's "is this sequence definition still in use" (usagecheck.ResourceSequenceDefinition), asked before a definition is archived.
inventory/app
Package app holds the Inventory application services: authorization, and the operations that span more than one domain service.
Package app holds the Inventory application services: authorization, and the operations that span more than one domain service.
inventory/domain/services
The only raw SQL in the Inventory module, a deliberate exception to the engine-first rule: reserving stock safely requires SELECT ...
The only raw SQL in the Inventory module, a deliberate exception to the engine-first rule: reserving stock safely requires SELECT ...
inventory/domain/settings
Package settings holds Inventory's settings schemas.
Package settings holds Inventory's settings schemas.
inventory/dynamicengines
Package dynamicengines declares the resource onions the Inventory module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
Package dynamicengines declares the resource onions the Inventory module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
inventory/interfaces/external
Package external declares the ports Inventory consumes from other modules.
Package external declares the ports Inventory consumes from other modules.
inventory/interfaces/message
Package message is the port for Inventory's outbound integration events.
Package message is the port for Inventory's outbound integration events.
inventory/interfaces/product
Package product is the Inventory module's cross-module port: the only Products capability other modules bind to.
Package product is the Inventory module's cross-module port: the only Products capability other modules bind to.
inventory/interfaces/stock
Package stock is the port onto what Stock knows about a location.
Package stock is the port onto what Stock knows about a location.
inventory/interfaces/warehouse
Package warehouse is the contract for Warehouse operations spanning more than one resource: writes that touch a warehouse and its locations together, plus the flow reads the Stock movement engine plans against.
Package warehouse is the contract for Warehouse operations spanning more than one resource: writes that touch a warehouse and its locations together, plus the flow reads the Stock movement engine plans against.
purchase
Package purchase covers the procurement cycle from request for quotation to confirmed purchase order.
Package purchase covers the procurement cycle from request for quotation to confirmed purchase order.
purchase/app
Package app holds the Purchase application services.
Package app holds the Purchase application services.
purchase/domain/services
Package services holds the rules of the Purchase module: the totals recomputation, the order and agreement lifecycles, and the audit trail that records them.
Package services holds the rules of the Purchase module: the totals recomputation, the order and agreement lifecycles, and the audit trail that records them.
purchase/domain/services/vendorpricing
Package vendorpricing decides which vendor price applies to a purchase.
Package vendorpricing decides which vendor price applies to a purchase.
purchase/domain/settings
Package settings holds Purchase's settings schemas.
Package settings holds Purchase's settings schemas.
purchase/dynamicengines
Package dynamicengines registers the composable onions of the Purchase resources and publishes their typed layers into the dependency container.
Package dynamicengines registers the composable onions of the Purchase resources and publishes their typed layers into the dependency container.
purchase/interfaces/agreement
Package agreement declares the CRUD layers of the purchase agreement and its lines.
Package agreement declares the CRUD layers of the purchase agreement and its lines.
purchase/interfaces/audit
Package audit declares the CRUD layers of the purchase audit trail.
Package audit declares the CRUD layers of the purchase audit trail.
purchase/interfaces/configuration
Package configuration declares the CRUD layers of the per-org purchase configuration.
Package configuration declares the CRUD layers of the per-org purchase configuration.
purchase/interfaces/external
Package external declares Purchase's local ports onto the capabilities other modules offer, so that splitting a module into its own process changes only the binding in infra/external.
Package external declares Purchase's local ports onto the capabilities other modules offer, so that splitting a module into its own process changes only the binding in infra/external.
purchase/interfaces/order
Package order declares the CRUD layers of the purchase order, its lines and its sourcing groups.
Package order declares the CRUD layers of the purchase order, its lines and its sourcing groups.
purchase/interfaces/vendorprice
Package vendorprice declares the CRUD layers of the vendor price list.
Package vendorprice declares the CRUD layers of the vendor price list.
sales
Package sales owns the commercial transaction: sales order and lines, pricing and promotion, billing, payment allocation, return and refund.
Package sales owns the commercial transaction: sales order and lines, pricing and promotion, billing, payment allocation, return and refund.
sales/app
Package app holds the Sales application services.
Package app holds the Sales application services.
sales/domain/services
Package services holds the Sales business rules.
Package services holds the Sales business rules.
sales/domain/services/pricing
Package pricing is the sales pricing engine: a pure function from a basket to a priced result.
Package pricing is the sales pricing engine: a pure function from a basket to a priced result.
sales/domain/services/pricing/promotion
Package promotion is the pure Sales promotion engine (BR_Sales_Promotion_Voucher, plan §3.1).
Package promotion is the pure Sales promotion engine (BR_Sales_Promotion_Voucher, plan §3.1).
sales/domain/settings
Package settings holds Sales' settings schemas.
Package settings holds Sales' settings schemas.
sales/dynamicengines
Package dynamicengines declares the resource engines the Sales module serves, and creates them during Init().
Package dynamicengines declares the resource engines the Sales module serves, and creates them during Init().
sales/event_handlers
Package eventhandlers acts on the events Sales subscribes to.
Package eventhandlers acts on the events Sales subscribes to.
sales/interfaces/billing
Package billing declares the commands the scheduler dispatches into Sales.
Package billing declares the commands the scheduler dispatches into Sales.
sales/interfaces/catalog
Package catalog declares the layers of the Sales catalogue resources: the fulfillment methods, channels and points a sale happens through, and the pricelists and combos it is priced by.
Package catalog declares the layers of the Sales catalogue resources: the fulfillment methods, channels and points a sale happens through, and the pricelists and combos it is priced by.
sales/interfaces/channel
Package channel is Sales' outward-facing contract for sales channels and sales points.
Package channel is Sales' outward-facing contract for sales channels and sales points.
sales/interfaces/event
Package event declares what Sales listens for on the internal event bus.
Package event declares what Sales listens for on the internal event bus.
sales/interfaces/external
Package external declares Sales' local ports onto the capabilities other modules offer, so splitting a module into its own process changes only the binding in infra/external.
Package external declares Sales' local ports onto the capabilities other modules offer, so splitting a module into its own process changes only the binding in infra/external.
sales/interfaces/external/invoicing
Package invoicing is Sales' port onto the issuing of legal fiscal documents.
Package invoicing is Sales' port onto the issuing of legal fiscal documents.
sales/interfaces/fiscal
Package fiscal declares the layers of the resources that turn a sale into a legal document: the request for an invoice, the instruction that says how to bill, and the record of each issuance attempt.
Package fiscal declares the layers of the resources that turn a sale into a legal document: the request for an invoice, the instruction that says how to bill, and the record of each issuance attempt.
sales/interfaces/fulfillment
Package fulfillment declares the layers of the resources that carry out a sale: the fulfillment a confirmed order owes, the attempts made against it, and the record of a target being moved.
Package fulfillment declares the layers of the resources that carry out a sale: the fulfillment a confirmed order owes, the attempts made against it, and the record of a target being moved.
sales/interfaces/integration
Package integration declares the layers of the two records Sales keeps about itself: the manual discounts granted on an order, and the outbox of integration events other systems consume.
Package integration declares the layers of the two records Sales keeps about itself: the manual discounts granted on an order, and the outbox of integration events other systems consume.
sales/interfaces/message
Package message is the port for Sales' outbound integration events.
Package message is the port for Sales' outbound integration events.
sales/interfaces/order
Package order is Sales' port for raising and settling an order from another module in-process.
Package order is Sales' port for raising and settling an order from another module in-process.
sales/interfaces/promotion
Package promotion declares the layers of the promotion and voucher resources (BR §8): the promotion with its scope, rules, rewards and selectors; the vouchers that unlock it; and the read-only records of what a confirmed order received.
Package promotion declares the layers of the promotion and voucher resources (BR §8): the promotion with its scope, rules, rewards and selectors; the vouchers that unlock it; and the read-only records of what a confirmed order received.
sales/interfaces/quotation
Package quotation declares the layers of the quotation resources: the offer a customer is given before it becomes a sale, and the lines it quotes.
Package quotation declares the layers of the quotation resources: the offer a customer is given before it becomes a sale, and the lines it quotes.
sales/interfaces/returns
Package returns declares the layers of the return and refund resources: the customer's request to send goods back, the lines it covers, and the money paid back against it.
Package returns declares the layers of the return and refund resources: the customer's request to send goods back, the lines it covers, and the money paid back against it.
sales/transport/cqrs
Package cqrs receives the commands the scheduler dispatches into Sales.
Package cqrs receives the commands the scheduler dispatches into Sales.
sales/transport/event
Package eventtransport subscribes Sales to the internal event bus and dispatches each event to the handler registered for its type.
Package eventtransport subscribes Sales to the internal event bus and dispatches each event to the handler registered for its type.
sales/transport/restful/v1
Package v1 serves the Sales resources over HTTP.
Package v1 serves the Sales resources over HTTP.
Package contacts holds the people and organizations the business deals with.
Package contacts holds the people and organizations the business deals with.
app
dynamicengines
Package dynamicengines declares the resource onions the Contacts module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
Package dynamicengines declares the resource onions the Contacts module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
interfaces/commchannel
Package commchannel declares the layers of the contacts_comm_channel resource: the ways a party can be reached (phone, email, address, …).
Package commchannel declares the layers of the contacts_comm_channel resource: the ways a party can be reached (phone, email, address, …).
interfaces/party
Package party declares the party capability that Contacts offers to other modules.
Package party declares the party capability that Contacts offers to other modules.
interfaces/relationship
Package relationship declares the layers of the contacts_relationship resource: a typed link between two parties (employee of, subsidiary of, …).
Package relationship declares the layers of the contacts_relationship resource: a typed link between two parties (employee of, subsidiary of, …).
interfaces/vendor
Package vendor declares the vendor capability that Contacts offers to other modules.
Package vendor declares the vendor capability that Contacts offers to other modules.
audit
Package audit is the core port through which the platform records who did what to which record.
Package audit is the core port through which the platform records who did what to which record.
httpclient/httpclienttest
Package httpclienttest holds test helpers for code that calls out through the shared HTTP client: an in-memory tracer, a traced request context, and a server that records headers.
Package httpclienttest holds test helpers for code that calls out through the shared HTTP client: an in-memory tracer, a traced request context, and a server that records headers.
job
orglifecycle
Package orglifecycle lets every module write its defaults for a new organization and remove everything it holds for a deleted one.
Package orglifecycle lets every module write its defaults for a new organization and remove everything it holds for a deleted one.
orglifecycle/defaults
Package defaults reads a module's org defaults: one `<schema_name>.json` file per resource, holding an array of rows that the module writes through its domain services.
Package defaults reads a module's org defaults: one `<schema_name>.json` file per resource, holding an array of rows that the module writes through its domain services.
resourceaccess
Package resourceaccess is the core port through which a module asks whether the caller may read a record of another module's resource, without importing that module.
Package resourceaccess is the core port through which a module asks whether the caller may read a record of another module's resource, without importing that module.
settings
Package settings is the shared contract every feature module writes its settings through.
Package settings is the shared contract every feature module writes its settings through.
storage
Package storage is the core port through which any module tells the storage module which files its records use.
Package storage is the core port through which any module tells the storage module which files its records use.
tag
usagecheck
Package usagecheck asks the modules that reference a resource whether it is still in use, before the module owning it deletes it.
Package usagecheck asks the modules that reference a resource whether it is still in use, before the module owning it deletes it.
Package composable is the dynamic-resource engine: schema-driven CRUD, org scoping, permission, computed fields, the built-in REST route table and its param binders, split into the onion layers a feature module already has: a repository, a domain service, an application service and a REST handler, each with a default implementation a module embeds and extends.
Package composable is the dynamic-resource engine: schema-driven CRUD, org scoping, permission, computed fields, the built-in REST route table and its param binders, split into the onion layers a feature module already has: a repository, a domain service, an application service and a REST handler, each with a default implementation a module embeds and extends.
app
domain/services/sequence
Package sequence holds the pure algorithms behind Sequence: the pseudorandom (FF1) value, template rendering and validation, reset periods and the idempotency fingerprint.
Package sequence holds the pure algorithms behind Sequence: the pseudorandom (FF1) value, template rendering and validation, reset periods and the idempotency fingerprint.
domain/settings
Package settings holds Essential's settings schemas.
Package settings holds Essential's settings schemas.
domain/timezone
Package timezone is the hardcoded IANA catalogue a timezone setting is chosen from.
Package timezone is the hardcoded IANA catalogue a timezone setting is chosen from.
dynamicengines
Package dynamicengines declares the resource onions the Essential module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
Package dynamicengines declares the resource onions the Essential module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
infra/defaults
Package defaults holds the records every new organization starts with, one `<schema>.json` file per resource.
Package defaults holds the records every new organization starts with, one `<schema>.json` file per resource.
infra/external
Package external binds Essential's local ports to the services other modules publish.
Package external binds Essential's local ports to the services other modules publish.
infra/repository
The Sequence repositories hold the only raw SQL in Essential, a deliberate exception to the engine-first rule (docs/wiki/07 §6.7): issuing a number needs INSERT ...
The Sequence repositories hold the only raw SQL in Essential, a deliberate exception to the engine-first rule (docs/wiki/07 §6.7): issuing a number needs INSERT ...
interfaces/currency
Package currency declares the currency capability that Essential offers to other modules.
Package currency declares the currency capability that Essential offers to other modules.
interfaces/module
Package module declares the layers of the essential_module_metadata resource: one row per module the binary has ever loaded, kept in step with the loader by SyncModuleMetadata at boot.
Package module declares the layers of the essential_module_metadata resource: one row per module the binary has ever loaded, kept in step with the loader by SyncModuleMetadata at boot.
interfaces/timezone
Package timezone declares the search over the hardcoded timezone catalogue.
Package timezone declares the search over the hardcoded timezone catalogue.
interfaces/uom
Package uom declares the UoM capability that Essential offers to other modules.
Package uom declares the UoM capability that Essential offers to other modules.
interfaces/uomcat
Package uomcat declares the UoM Category resource's layers.
Package uomcat declares the UoM Category resource's layers.
app
iam
app
domain/settings
Package settings holds iam's settings schemas.
Package settings holds iam's settings schemas.
dynamicengines
Package dynamicengines declares the resource onions the IAM module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
Package dynamicengines declares the resource onions the IAM module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
Package itstorage owns every uploaded file: the storage space tree, the file records, and the objects in S3.
Package itstorage owns every uploaded file: the storage space tree, the file records, and the objects in S3.
app
dynamicengines
Package dynamicengines declares the resource onions IT Storage serves through the composable resource engine, and registers them and their typed layers into the dependency container.
Package dynamicengines declares the resource onions IT Storage serves through the composable resource engine, and registers them and their typed layers into the dependency container.
infra/external
Package external binds IT Storage's local ports to the services other modules publish.
Package external binds IT Storage's local ports to the services other modules publish.
interfaces/consumption
Package consumption declares the layers of the itstorage_consumption resource: the bytes each tenant, organization and user stores, and the bytes reserved by uploads still in flight.
Package consumption declares the layers of the itstorage_consumption resource: the bytes each tenant, organization and user stores, and the bytes reserved by uploads still in flight.
interfaces/external
Package external declares the ports IT Storage holds onto other modules.
Package external declares the ports IT Storage holds onto other modules.
interfaces/file
Package file declares the layers of the itstorage_file resource: one stored object and its metadata.
Package file declares the layers of the itstorage_file resource: one stored object and its metadata.
interfaces/space
Package space declares the layers of the itstorage_space resource: the system-managed tree that files are stored in.
Package space declares the layers of the itstorage_space resource: the system-managed tree that files are stored in.
transport
Package transport subscribes IT Storage to the org lifecycle commands and mounts its routes.
Package transport subscribes IT Storage to the org lifecycle commands and mounts its routes.
Package jobscheduler runs recurring jobs registered by other modules.
Package jobscheduler runs recurring jobs registered by other modules.
app
domain/services
Package services holds the scheduling engine and the rules it applies.
Package services holds the scheduling engine and the rules it applies.
infra/repository
This file contains the only raw SQL in the Job Scheduler, and it is a deliberate exception to the engine-first rule in docs/wiki/07 §6.7 rather than drift.
This file contains the only raw SQL in the Job Scheduler, and it is a deliberate exception to the engine-first rule in docs/wiki/07 §6.7 rather than drift.
app
domain/settings
Package settings holds Notification's settings schemas.
Package settings holds Notification's settings schemas.
dynamicengines
Package dynamicengines declares the resource onions the Notification module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
Package dynamicengines declares the resource onions the Notification module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
infra/external
Package external binds Notification to the infrastructure and to other modules.
Package external binds Notification to the infrastructure and to other modules.
infra/external/channels
Package channels holds the distribution channels themselves.
Package channels holds the distribution channels themselves.
interfaces/delivery
Package delivery declares the contracts for raising and reading notifications.
Package delivery declares the contracts for raising and reading notifications.
transport/cqrs
Package cqrs receives the commands other modules dispatch into Notification.
Package cqrs receives the commands other modules dispatch into Notification.
Package paymentinvoice takes payments through the payment gateways the business has contracts with, and issues the invoices that account for them.
Package paymentinvoice takes payments through the payment gateways the business has contracts with, and issues the invoices that account for them.
app
Package app holds the Payment & Invoice application services.
Package app holds the Payment & Invoice application services.
domain/services
Package services holds the rules of the Payment & Invoice module: what may be paid, what may be refunded, and what state an order is left in when a gateway answers.
Package services holds the rules of the Payment & Invoice module: what may be paid, what may be refunded, and what state an order is left in when a gateway answers.
domain/settings
Package settings holds Payment & Invoice's settings schemas.
Package settings holds Payment & Invoice's settings schemas.
dynamicengines
Package dynamicengines registers the composable onions of the Payment & Invoice resources and publishes their typed layers into the dependency container.
Package dynamicengines registers the composable onions of the Payment & Invoice resources and publishes their typed layers into the dependency container.
infra/external
Package external binds Payment & Invoice's local ports to the services other modules publish.
Package external binds Payment & Invoice's local ports to the services other modules publish.
infra/external/event
Package event publishes this module's announcements on the internal Watermill bus.
Package event publishes this module's announcements on the internal Watermill bus.
infra/gateway
Package gateway builds the gateway registry this deployment will actually serve payments through, from configuration.
Package gateway builds the gateway registry this deployment will actually serve payments through, from configuration.
infra/gateway/momo
Package momo talks to MoMo, a Vietnamese e-wallet.
Package momo talks to MoMo, a Vietnamese e-wallet.
infra/gateway/mpos
Package mpos talks to mPOS (NextPay), which drives a physical card terminal.
Package mpos talks to mPOS (NextPay), which drives a physical card terminal.
infra/gateway/vietqr
Package vietqr talks to VietQR, which settles bank transfers made by scanning a QR code.
Package vietqr talks to VietQR, which settles bank transfers made by scanning a QR code.
interfaces/event
Package event is what this module announces to the rest of the build when an order reaches a verdict.
Package event is what this module announces to the rest of the build when an order reaches a verdict.
interfaces/gateway
Package gateway declares what a payment gateway must be able to do, and nothing about how any particular one does it.
Package gateway declares what a payment gateway must be able to do, and nothing about how any particular one does it.
interfaces/invoice
Package invoice is the Payment & Invoice module's port for raising a fiscal document on behalf of another module.
Package invoice is the Payment & Invoice module's port for raising a fiscal document on behalf of another module.
interfaces/order
Package order is the Payment & Invoice module's port for taking money and giving it back.
Package order is the Payment & Invoice module's port for taking money and giving it back.
interfaces/paymentmethod
Package paymentmethod is the port through which another module reads this one's payment method master data.
Package paymentmethod is the port through which another module reads this one's payment method master data.
interfaces/paymentprofile
Package paymentprofile declares the CRUD layers of the paymentprofile resource.
Package paymentprofile declares the CRUD layers of the paymentprofile resource.
interfaces/transaction
Package transaction declares the CRUD layers of the transaction resource.
Package transaction declares the CRUD layers of the transaction resource.
transport/restful/v1
Package v1 serves the gateway callbacks.
Package v1 serves the gateway callbacks.
Package settings gives every feature module one place to declare its configuration and have it stored, resolved and rendered, instead of each building its own settings table.
Package settings gives every feature module one place to declare its configuration and have it stored, resolved and rendered, instead of each building its own settings table.
app
dynamicengines
Package dynamicengines declares the resource onions the Settings module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
Package dynamicengines declares the resource onions the Settings module serves through the composable resource engine, and registers them into the dependency container during the module's Init().
interfaces/settings
Package settings declares the capabilities the Settings module exposes to the rest of the application: schema registration, and the per-level read and write of setting values.
Package settings declares the capabilities the Settings module exposes to the rest of the application: schema registration, and the per-level read and write of setting values.
interfaces/settingsquota
Package settingsquota declares the layers of the settings_quota resource: how much of a named resource one tenant, organization or user may use.
Package settingsquota declares the layers of the settings_quota resource: how much of a named resource one tenant, organization or user may use.
interfaces/settingsrecord
Package settingsrecord declares the layers of the settings_record resource: one stored value per module, setting name and owner.
Package settingsrecord declares the layers of the settings_record resource: one stored value per module, setting name and owner.
interfaces/settingsschema
Package settingsschema declares the layers of the settings_schema resource: one row per module and level, holding the setting definitions a module registered at boot.
Package settingsschema declares the layers of the settings_schema resource: one row per module and level, holding the setting definitions a module registered at boot.
transport
Package transport subscribes Settings to the org lifecycle commands.
Package transport subscribes Settings to the org lifecycle commands.

Jump to

Keyboard shortcuts

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