0

Modularity glossary

For users testing modularity v2 in Ninox 3.17 beta on Private Cloud

1. Core concepts

Domain modeling

Designing tables, fields, and scripts to match real-world entities in a single business domain. A clear domain model keeps modules easy to read and extend.

Loose coupling

A design rule: expose the minimum set of fields so modules depend only on the interface, not on each other's internals. The fewer fields you expose, the easier it is to update, reuse, and replace a module.

Module

A self-contained Ninox database that exposes selected tables, pages, fields, and formulas through a module interface. Other databases connect to the module only through this interface, allowing the module to be reused, updated, or replaced without exposing its internal setup.

Module interface

The schema-based contract between a source database and one or more target databases. The interface defines all exposed tables, pages, fields, and formulas, along with their public names, internal names, and record and field permissions.

Interface ID

The unique, human-readable identifier for an interface. It is the API-level identifier for the contract. Changing the interface ID creates a new interface; existing target database connections remain tied to the old ID and stop syncing until they connect to the new one.

Separation of concerns

The practice of giving each module a single, well-defined responsibility and hiding everything else. This limits complexity and helps teams work in parallel.

2. Roles

Module provider

Builds and maintains the source database, exposes tables, pages, fields, and formulas through an interface, manages record and field permissions, and versions the interface.

Module consumer

Connects a target database to a module's interface and builds solutions on top of the exposed data.

End user

Operates the finished Ninox solution; may not know it contains modules.

3. Databases and tables

Table/field name

Caption visible only to the module provider. It can be changed at any time and is never shown to target databases.

Public table/field name

Editable label visible in target databases for a table or field. Renaming changes only the label; the underlying system ID remains the same.

Field type

Field types determine whether a field can be exposed through an interface. Supported today are data fields (text, number, date + time, yes/no, choice, multiple choice, relationship) and calculated fields (formula, dynamic choice, dynamic multiple choice). Image fields are not supported. Global functions will be supported soon.

External table

A table that Ninox automatically creates in a target database for every table exposed by a source database. External tables mirror the source data and stay in sync while connected. Field mapping is applied during creation. If the connection is removed, the table remains in the target database with all data intact and behaves like a regular local table.

Target database

A database that connects to a module's interface. Ninox creates external tables in the target database for each exposed table in the source database, applies field mapping, and keeps the data in sync while the connection is active. A target database can also act as a source database for downstream modules.

Source database

The database owned by the module provider. It contains the authoritative tables, pages, fields, and formulas, and exposes selected elements through a module interface. The source database always retains write access and controls interface versions and permissions.

4. Interface actions

Expose (verb)

Make selected tables, pages, fields, or formulas available through a module interface. Each exposed element receives a public name and defined access permissions set by the module provider.

Provide (verb)

Supply live data to connected target databases through an interface. The source database owns the authoritative records and applies all updates according to the interface's permissions.

Use (verb)

Connect a target database to a module's interface and work with the exposed data and logic according to the defined permissions. Using a module means relying on the interface contract, not accessing the source database's internal tables or scripts directly.

5. Data flow and permissions

Read-only access

The default permission for an exposed table or field. Target databases can view source data but cannot modify it.

Read and write access

Allows target databases to edit source data through the interface. The source database always retains write access internally.

Reply

null