Skip to main content

Project Setup Model

The project setup model describes your project in terms of what is built, what runs and where it runs.

Our 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. is modeled as a SoftwareProject. The root of this model is a Project, which includes this SoftwareProject, and can be extended with other services, such as existing technologies or platforms that were built by other parties.

The Model​

  • The Project is the root of the model: everything that belongs to one repository.
  • A SoftwareProject represents a code base that can be built, such as your 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..
  • An artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. represents a deployment or build artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project.. An artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. can be linked to:
    • a SoftwareProject, signifying that the artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. is created by the software project (e.g. docker image for the backend)
    • a Service, meaning the artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. is consumed by the service. The service will provide a runtime environment for it.
  • A service specifies the runtime of an artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project.. It has a one-to-one relationship with an artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project.. (applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. backend, frontend, gateway, database)
  • An environment represents the context of services, it groups the services that run together.
  • A Pipeline describes how a software project is built, tested and delivered, as a sequence of stages: expand, validate, build, deploy, and so on.
Important

ArtifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. in this context are deployment or build artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. (e.g. docker images or jars). They are not to be confused with an artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. in the context of NS expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. meaning, a file generated by an expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..

An Example​

A car rental project example

The carRental project has one software project, the carRental 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.. It builds a backend image, which is run by a backend service. Next to it, a database service runs a standard Postgres image that is not built by the project. Both services run in the default environment. A pipeline expands, builds and deploys the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..