Life ConnectLife Connect
Wiki index
Architecture
Services
Concepts
Runbooks
Infra
Swagger Docs
GitHub
Wiki index
Architecture
Services
Concepts
Runbooks
Infra
Swagger Docs
GitHub
  • Archive
  • Data Dictionary
  • Functional Epics

    • DICTIONARY OF ATTRIBUTES
    • Search Condos
    • Display

      • DisplayAll

        • Display all - Contracts
        • Display all - invoices
        • Display all - parts
        • Display all - Persons Relationships
        • Display all - Persons
        • Display tickets
      • DisplayContract

        • Display bank account Contract
        • Display Condo Member Contract
        • Display contact contract
        • Display Employee Contract
        • Display Generic Contract
        • Display Insurance Contract
        • Display Legal Represent Contract
        • Display Oral Contract
        • Display Owner Contract
        • Display Condo Regulation Contract
        • Display rental Contract
        • Display Supplier Contract
        • Display Trustee Contract
      • DisplayDelegate

        • Display Delegate
      • DisplayHistory

        • Display history
      • DisplayPerson

        • Display Company Person
        • Display Condo Person
        • Display Division Person
        • Display Group Person
        • Display Indivision Person
        • Display Natural Person
        • Display Union Person
        • Display Unknown Person
      • DisplayPersonsContracts

        • Display all Interventions
      • DisplayProperty

        • Display part
        • Display part
      • UiPerson

        • Display "mini" Persons
    • Process

      • Create

        • Create property & condo
      • Delete

        • Delete objects according to state machine
      • RC Renewal

        • RC RESIDENTIAL - automatic renewal
      • Review

        • rent amount review - RC residential - creation
        • rent amount review - RC residential - take-over
      • Sell

        • Sell a unit
    • Reporting

      • GRR

        • GLOBAL RENT REPORT
    • Search

      • Search
    • StateMachine

      • CreatingContract

        • State machine - creating a rental contract
        • State machine - creating a rental delegate contract
        • State machine - Referencing a abstract part contract
        • State machine - Referencing a bank contract
        • State machine - Referencing a condo regulation contract
        • State machine - Referencing a contact contract
        • State machine - Referencing an employee contract
        • State machine - Referencing a generic contract
        • State machine - Referencing a legal represent contract
        • State machine - Referencing a owner contract
        • State machine - Referencing a rental contract
        • State machine - Referencing a supplier contract
        • State machine - Referencing a trustee contract
      • CreatingIntervention

        • State machine - creating a ticket
        • State machine - Referencing a message
      • CreatingInvoice

        • State machine - creating a incoming (supplier) invoice
      • CreatingPayments

        • State machine - creating an incoming payment
      • EncodingPart

        • CreatingPart

          • State machine - Referencing part relationships
          • State machine - Referencing a part
      • EncodingPerson

        • CreatingAddresses

          • State machine - Creating email address
          • State machine - Creating phone address
          • State machine - Creating postal address
          • State machine - Creating web address
        • CreatingPerson

          • State machine - Referencing a company person
          • State machine - Referencing a condo person
          • State machine - Referencing a division person
          • State machine - Referencing an group person
          • State machine - Referencing an indivision person
          • State machine - Referencing a natural person
          • State machine - Referencing a union person
        • CreatingShareHolders

          • State machine - valuing a shareholder
      • Scanning

        • State machine scanning - analyze a document
        • State machine scanning - matching a document
        • State machine scanning - encoding a document : related information
    • Utility

      • Allocation keys
      • Company settings
      • Document data & file
      • Revision Index
    • Validations

      • Shareholders validation
  • Implicit

    • Callback

      • Logging In
  • ProductBoard

    • Rental Process

      • Rental delegate process
    • Ticketing

      • Create a ticket - link a ticket in Outlook add-in - add a call - display a ticket
      • Display Person Info in Outlook add-in
  • Technical Epics

    • Indexation Feature Documentation
    • Rent Amount Management Feature Documentation
    • I have an API
    • I can store the balance of an account
    • I Have Person Notifications
    • 🧩 System Process Diagrams
    • The Team has a DEV environment
    • The Team is organized
    • Accounting

      • Re-generation of Invoices
      • I can call the rent for my Rental Contract
      • Payment Creation Strategy Feature Documentation
      • I Can Revese

        • Payment Reversal
      • I Have Invoices

        • I have direction on invoice's item level
      • I Have Subsidies

        • I Can Receive Family Allowance Payments - Technical Documentation
        • Subsidies + Direct Debit Documentation
    • Communication Module

      • Communication module
    • Contracts

      • I can have contract guarantors
      • API Models
      • I Have Call For Rent Process

        • Call For Rent (CFR) Process Documentation
      • Occupancy Compensation

        • **OCCUPANCY COMPENSATION Documentation**
      • State Machine

        • I can have the Rental Contract state machine
    • Database

      • Database Indexes
    • E2e Testing

      • I can create an E2E dataset
    • Env Setup

      • Adapt env to stateless UI build
      • Blockhound
      • Table of Environments and Their Specifications
      • Environment How-To
      • Java Flight Recorder Management Documentation
      • Local Environment Setup
      • Kubernetes Logs Retrieval Documentation
      • Monitoring
      • I can create a new organisation
      • Production Environment Configuration
      • Remote Environment Setup
      • Set up of separate DB for env
      • Terraform Aws S3 Buckets
      • adb-ui Service Version Update
    • Files

      • I can have tags for files
    • Globals

      • boundaries
      • boundaries
      • boundaries
      • boundaries
    • Messaging

      • MongoDB Trigger Model Documentation
    • Open Api

      • Swagger Documentation Guide
      • Swagger
    • Parts

      • I Have A Forecast And Actuals Module
      • I can have part equipments
    • Process

      • Pre-Meeting Questionnaire
      • I Can Release My Feature
    • Security

      • I can create and provision an organisation
      • a user is granted access to the application
    • Stress Test

      • Introduction
      • Reports

        • Introduction
        • Introduction
        • Introduction
        • Introduction
        • Introduction
        • Table of contents
    • Tickets

      • Ticket Details Functionality
    • Troubleshooting

      • Prometheus Memory Issue Handling
Last updated 2026-06-02

Database Indexes

This document provides an overview of all database indexes used in the project, along with their scripts and purposes.


Index Overview

Index NameDatabaseCollectionFieldsUniquePurpose
unique_processedadb-accountingaccounting_eventunique (partial), state: "PROCESSED"YesEnsure uniqueness for processed events.
organisation_accountadb-accountingledger_accountorganisationId, accountNumberYesPrevent duplicate ledger accounts.
target_targetId_targetTypeadb-accountingledger_accounttarget.targetId, target.targetTypeNoSupport queries on ledger targets.
accountNumber_indexadb-accountingledger_accountaccountNumberNoSupport account-based queries.
org_targetIdadb-accountingledger_auxiliary_accountorganisationId, target.targetIdNoSupport auxiliary account lookups.
parent_idadb-accountingledger_auxiliary_accountparent._idNoOptimize queries on parent accounts.
posting_dateadb-accountingdomain_object_accounting_entrypostingDateNoOptimize queries by posting date.
direction_indexadb-accountingdomain_object_accounting_entrydirectionNoOptimize direction-based queries.
account_idadb-accountingdomain_object_accounting_entryaccount._idNoOptimize queries on account IDs.
parent_account_idadb-accountingdomain_object_accounting_entryaccount.parent._idNoOptimize queries on parent accounts.
notifications_ttladb-utilitiesnotifications_ttlstartNoAutomatically expire old notifications.
unique_key_filesadb-filesfilesuniqueKey (partial)YesEnsure file uniqueness where applicable.
unique_invoicesadb-accountinginvoicesunique (partial)YesEnsure uniqueness for certain invoices.
invoice_parentIdadb-accountinginvoicesparentIdNoOptimize queries for invoice hierarchies.

Detailed Index Scripts

accounting_event Collection

db.getSiblingDB('adb-accounting').getCollection('accounting_event').createIndex(
    { "unique": 1 },
    {
        unique: true,
        partialFilterExpression: {
            "unique": { $exists: true },
            "state": "PROCESSED"
        }
    }
);

ledger_account Collection

db.getSiblingDB('adb-accounting').getCollection('ledger_account').createIndex(
    { organisationId: 1, accountNumber: 1 },
    { unique: true }
);

db.getSiblingDB('adb-accounting').getCollection('ledger_account').createIndexes([
    { "target.targetId": 1, "target.targetType": 1 },
    { "accountNumber": 1 }
]);

ledger_auxiliary_account Collection

db.getSiblingDB('adb-accounting').getCollection('ledger_auxiliary_account').createIndexes([
    { "organisationId": 1, "target.targetId": 1 },
    { "parent._id": 1 }
]);

domain_object_accounting_entry Collection

db.getSiblingDB('adb-accounting').getCollection('domain_object_accounting_entry').createIndexes([
    { "postingDate": 1 },
    { "direction": 1 },
    { "account._id": 1 },
    { "account.parent._id": 1 }
]);

notifications_ttl Collection

db.getSiblingDB('adb-utilities').getCollection('notifications_ttl').createIndex({ 'start': 1 }, { expireAfterSeconds: 0 });

files Collection

db.getSiblingDB('adb-files').getCollection('files').createIndex(
    { "uniqueKey": 1 },
    {
        unique: true,
        partialFilterExpression: {
            "uniqueKey": { $exists: true }
        }
    }
);

invoices Collection

db.getSiblingDB('adb-accounting').getCollection('invoices').createIndex(
    { "unique": 1 },
    {
        unique: true,
        partialFilterExpression: {
            "unique": { $exists: true }
        }
    }
);

db.getSiblingDB('adb-accounting').getCollection('invoices').createIndex({ parentId: 1 });

"""

Edit this page
Last Updated:
Contributors: Yevhenii Khudolii