0

Modularity glossary

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 data or logic through interfaces, so it can be reused, updated, and monetized without breaking connected systems.

Module interface

The standardized connection point that gives controlled access to a module’s data while preserving encapsulation.

Interface name

The single label that identifies an interface to both author and consumer; the consumer sees it as the module’s name. Because it is the API-level identifier for the interface itself, changing it creates a new interface and breaks existing connections until consumers update.

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

End user

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

Module author

Builds the provider database, exposes entities, versions the interface, and (eventually) publishes the module.

Module consumer

Installs the module, connects to its interface, and extends it inside their own Ninox app.

3. Databases and tables

Child database

A consumer database that connects to a provider’s interface. Ninox creates external tables—live replicas of the provider’s data.

External table

A table that Ninox automatically creates in a child database for every table the provider database exposes. While the interface is connected, the external table is a live replica of the provider’s data. If the interface is disconnected, the table remains in the child database with all data intact but stops syncing and behaves like a regular local table.

Table/field name

Caption visible only to the module author. It can be changed any time and is never shown to consumers.

Public table/field name

Editable label a consumer sees for a table or field. Renaming changes only the label; the underlying system ID remains the same.

Field type

One of three categories: data, layout, relationship. Only data fields can be exposed today. Relationship, formula, image/file, and dynamic choice fields are planned.

Provider database

Source database that owns the authoritative tables and fields and exposes them via an interface.

4. Interface actions

Expose (verb)

Make internal tables or fields publicly accessible through an interface, each with a unique public name. Expose defines what can be shared.

Provide (verb)

Supply live data or logic via an already exposed interface whenever consumers are connected. Provide delivers the shared data.

Publish (verb)

Package the module (including its interface) so it can be shared or imported into another workspace.

5. Data flow and permissions

Read access (interface)

Default permission for an exposed field or table. Child databases can view the provider’s data but cannot modify it. Every exposed element has at least Read access; Write access must be granted explicitly.

Write access (interface)

Lets a child database modify provider data through the interface. The provider always retains write access; this setting only grants it to children.

Reply

null