07 β Tenant API Module Catalog
The functional modules of the tenant-api, grouped by domain. Each module is a controller subdirectory under src/tenant-api/src/controllers/, with matching logic in src/tenant-api/src/services/ and middleware wiring in src/tenant-api/src/routes/index.ts. Each module is independently license-gated (04) β a tenant only exposes the modules its license enables.
Module keys are the controller directory names. Entity names are the conceptual tables; exact table identifiers (casing/pluralisation) should be spot-checked against src/tenant-api/src/database/ schema before relying on literal names. Routes are representative prefixes.
Financial & Collections
See 05 for the end-to-end flow.
- account β Polymorphic financial accounts for members, customers, suppliers and locations, with line items, payment methods, addresses and numbering. (account, account_item, account_payment_method, account_address;
/accounts,/account-items) - financial β Core transactions plus FX & per-country ecommerce config: exchange rates and ecommerce-country settings. (transaction, exchange_rate, ecommerce_country;
/financials/transactions,/exchange-rates,/countries) - financials β Period-based invoicing & reconciliation: billing cycles & executions, statements & statement runs, payment channels, tax types, supplier payouts. (billing_cycle, billing_cycle_execution, statement, statement_run, payment_channel, tax_type;
/billing-cycles,/statements,/payment-channels) - collections β Payment-collection orchestration: payment methods, authorizations, instalment plans, payment links, settlement reconciliation. (payment_method, payment_authorization, instalment, payment_link, settlement_transaction, settlement_report;
/payment-methods,/instalments,/payment-links,/settlements) - billing β Customer-facing billing: invoices, receipts and subscription billing surfaced to the member/customer portal. (
/customers/billing,/public/billing/invoices) - paymentGateway β Tenant-specific payment-gateway provider configs (credentials/connection). (payment_gateway_config;
/payment-gateways) - usage-billing β Usage/consumption-based billing channels & metric handlers for metered products. (usage_billing_channel;
/usage-billing-channels) - sales β Sales orders/transactions with payment processing; backs the product/package catalog. (sales_order, sales_transaction, product, package;
/sales,/orders,/products,/packages) - supplier β Supplier profiles, categories, supplier-portal accounts and payout setup. (supplier, supplier_category;
/suppliers) - numbering β Module-agnostic sequential document numbering with Redis-backed concurrency control. (numbering_configuration;
/numbering)
Membership & People
- member β Resident/member lifecycle: profiles, statuses, ranks, functions, relationship types, member requests. (member, member_status, member_rank, member_function_assignment, member_request;
/members,/member-requests) - group β Ad-hoc member groupings for cohort management and mass operations. (member_group;
/groups) - contact β Internal/external contact directory organised into reusable contact groups. (contact, contact_group;
/contacts,/contact-groups) - customer β External B2C/B2B customers (distinct from members) with their own portal access and order history. (customer, account;
/customers) - onboarding β Staff-facing onboarding workflows/approval queues linked to flow definitions; defines member types. (onboarding, onboarding_type, member_type;
/onboarding-records,/member-types) - user β Internal/admin users and member-linked portal accounts with role assignment + user groups. (tenant_user, user_role, user_group;
/users,/user-groups) - rbac β Roles with permission bundles and context awareness; assigns roles to users. (role, user_role;
/roles,/permissions) - directory β Member-facing directory of important numbers/services/organisations with draft/publish. (important_number, directory_category;
/directory)
Property/Estate & Facilities
- properties β Member property-ownership claims with verification workflows. (member_property_claim, property_relationship_type;
/property-claims,/properties) - location β Core geographic/location hierarchy: address structures, types, parent/child, member assignment, location groups. (location, location_type, location_group;
/locations,/location-groups) - facility β Booking/reservation of location-based facilities: slot scheduling, booking policies, approvals. (facility, facility_booking, facility_slot_rule;
/facilities) - feasibility β Network/service feasibility engine: proximity, polygon containment, line-of-sight, external providers. (feasibility_layer, feasibility_query, feasibility_request;
/feasibility) - utilities β Utility (water/electricity) metering & catalog: types, device pairs, member links, ingestion logs. (utility_type, utility_device_pair, member_utility_link;
/utilities,/utility-channels) - devices β Physical device catalog and instances; utility integration and handler-based actions. (device_type, device_instance;
/devices) - vehicle β Vehicle inventory/tracking: registrations, attributes, member/property links, GPS. (vehicle, vehicle_type;
/vehicles) - pet β Pet registry linked to members/properties, with field-policy enforcement. (pet, pet_type;
/pets) - mapping β Map composition and GeoJSON layers over locations/vehicles/feasibility, with external tile sources. (map, map_layer;
/mapping)
Communications & Engagement
- communication β Omni-channel messaging: email (tenant mail servers, templates, inbound), SMS gateways, omni-channel & message templates, bulk send, channels/subscribers. (communication_template, communication_history, communication_channel, tenant_mail_server, sms_gateway_config;
/communications,/mail-servers,/sms-gateways,/message-templates) - notification β Push and in-app notifications with push-token subscriptions. (user_notification;
/notifications) - newsstand β News/publications feed via branded news stands. (news_stand, news_article;
/news-stands) - gallery β Photo gallery/album management with upload, ordering, year organisation. (gallery_album, gallery_image;
/gallery) - classified β Classified-ads platform with categories, listings, pricing, approvals. (classified_category, classified, classified_image;
/classifieds) - faq β Categorised FAQ entries with reordering and public/admin views. (faq_category, faq_entry;
/faq) - event β Event management with registration, attendance, prerequisites, certificates, invitations. (event, event_attendance, event_registration;
/events,/event-types) - survey β Survey/eForm builder: templates, flow control, submissions, deadlines. (survey_template, survey_instance;
/surveys) - support β Support/ticketing: requests with assignment, SLA, comments, attachments, topics. (support_request, support_comment, support_topic;
/support) - terms β Legal terms & conditions with versioning and acceptance tracking (global/per-product/per-domain). (terms, product_terms, terms_acceptance;
/terms)
Access, Security & Compliance
- access-management β Visitor access invites, entry-type configs, points of entry, with pluggable identity/access handlers. (access_invite, access_entry_type, access_point_of_entry;
/access-management,/access-invites) - auth β Tenant authentication: JWT login/logout/refresh, OTP, password reset, profile. (tenant_user, password_reset_otp;
/auth) - kyc β Know-your-customer verification: pluggable provider channels, request tracking. (kyc_channel, kyc_request;
/kyc-channels,/kyc-requests) - certificate β Certificate generation/templates for members/events/locations, multi-format with variable substitution. (certificate_template, member_certificate;
/certificate-templates,/certificates) - audit β Tracks tenant entity mutations (actor, timestamp, delta) via an outbox for compliance. (audit_log, audit_outbox;
/audit-logs) - field-policy β Per-field visibility/requiredness/default overrides for licensed module entities. (module_field_policy;
/field-policy) - module-attribute β User-defined per-module custom attributes with typed value storage. (module_attribute, module_attribute_value;
/custom-properties) - apiKey β API-key lifecycle with scoped access, IP/referer restrictions, feasibility-layer binding. (api_key;
/api-keys) - webhooks β Inbound/outbound webhook delivery tracking with status, retry, context scope. (webhook;
/webhooks)
Operations & Field
- panic β Emergency panic-button system: triggers alerts, routes to responder groups, tracks incident lifecycle with location/dispatch logs. (panic_emergency_type, panic_responder_group, panic_log;
/panic)
Platform & Configuration
- settings β Tenant configuration/feature flags by module + reference data (owner-typeβrole mappings, banks, ID types). (tenant_setting, banks, id_types;
/settings,/banks) - tenant-setup β Initial tenant configuration progress tracking + the landing dashboard/onboarding checklist. (
/tenant/setup-status,/tenant/landing-dashboard) - platform β Proxy to core-api for tenant branding administration (logos, colours, favicon). (
/platform/core-branding) - domain β Per-domain app configuration: tiles, banners, navigation, permissions + domain resolution. (domain_config, domain_app_configuration;
/domains,/resolve-domain) - provisioning β Service-provisioning channels/handlers for account provisioning workflows. (provisioning_channel, provisioning_action;
/provisioning-channels) - customfields β User-defined custom fields/values for member data capture. (member_custom_field;
/custom-fields) - tags β Tenant tagging for entity categorisation/segmentation. (tag, entity_tag_snapshot;
/tags) - reporting β Report dashboards with grouping and metric visualisation (optional Metabase embedding). (report_dashboard, report_dashboard_item;
/reporting) - metrics β Regional tenant usage-metric collection/aggregation, submitted to core-api (feeds platform billing). (tenant_usage_metric;
/metrics) - health β Tenant health/operational probes (DB, storage, Redis, queues). (
/health) - cache β Internal maintenance endpoints for license/mail/usage cache clearing & warming. (
/internal/cache) - integration β External integration request logging/tracking and action grouping. (integration_action, integration_request;
/integration-requests) - document β Member document library with upload/storage/retrieval, organised by folder/type. (member_document, document_folder, document_type;
/documents) - bulk-upload β Bulk data import (CSV/Excel) with validation and row-level progress. (bulk_upload, bulk_upload_row;
/bulk-uploads) - flows β Workflow/process templates and execution instances for multi-step onboarding/surveys/processes. (flow_template, flow_instance, flow_instance_step;
/flow-templates,/flow-instances) - ai β Tenant AI-provider management, chat assistance, per-module data-governance for compliance. (ai_provider_config, ai_module_data_config;
/ai)
Notes & caveats
financialvsfinancialsare distinct:financial= transactions + FX/exchange rates + ecommerce-country config;financials= billing cycles, statements, payment channels, tax types, supplier payouts.grillexists in the controllers tree but is an internal AI dev/ops tool (codebase analysis via Claude CLI), not a tenant business capability β excluded from the business catalog above.- A few root-level controllers (
SlaController,SubscriptionController,InternalUsageController,PublicAccessInviteController) fold into support/SLA, member-facing billing, usage-billing and access-management respectively.