Skip to main content

NS Initializer

The NS initializer is a command-line tool intended to set up new NS projects very quickly with all recommended defaults and a complete configuration for CI/CD.

Different project types are supported to kickstart:

  • NS ApplicationNS Application (NSApplication). A pre-built software stack that provides common enterprise application functionality such as CRUD, search, authentication, and business process modeling out of the box. project
  • ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. project
  • Metamodel project
  • Plugin project
  • Initializer project

Initializer Bundles​

Each project type is provisioned by an initializer bundle: a regular expansion resourceExpansion Resource (ExpansionResource). A reusable resource bundle containing expanders and features that provide specific application capabilities, defined in the expansion settings and added to the classpath during expansion., using the same expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. infrastructure as any other NS expansion. Initializing a project isn't a special, separate mechanism: it's a model describing the project's arguments, expanded like any other model. This is also why new project types can be added by writing a new bundle, without touching the initializer applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. itself.

Application Initializer​

The NSX applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. project initializer is an initializer bundle which is used to create a new NS applicationNS Application (NSApplication). A pre-built software stack that provides common enterprise application functionality such as CRUD, search, authentication, and business process modeling out of the box. project, fully wired for NSX infrastructure and conventions. Beyond the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. model itself, it sets up the project's build tooling, an initial set of database roles and credentials so the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. runs out of the box, standard project files, and optional integration with CI/CD and AWS-based deployment. The initialized project is ready to run and deploy.

Expanders Initializer​

The NSX expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. initializer provisions a new expansion resourceExpansion Resource (ExpansionResource). A reusable resource bundle containing expanders and features that provide specific application capabilities, defined in the expansion settings and added to the classpath during expansion. project, with support for tooling and infrastructure used at NSX.

Metamodel Initializer​

The NSX metamodel initializer provides a new NS metamodel project. Through input, it either extends the default elements model, or defines an entirely standalone ProgramType and DataElement for it. It also sets up the project's build tooling and CI/CD integration, so the project is ready to expand and deploy from the start.

Initializer Initializer​

The initializer-initializer provisions a new initializer expansion resourceExpansion Resource (ExpansionResource). A reusable resource bundle containing expanders and features that provide specific application capabilities, defined in the expansion settings and added to the classpath during expansion. project project: a project used to define a new kind of project the NS Initializer itself can create.


Reference Guides​

Extensive documentation on the NS Initializer, its model, and the various types can be found in the Reference Guides.