SynopsisUse these definitions for a better understanding of the terms used throughout the docs, often within the context of the Harbormaster platform.
ApplicationThe combination of all language specific generated files and application configuration files that are all brought together during “build-time” to result in a deployable package. This is different from a Harbormaster Project (project) which includes an application and other files required to build, test, architect, and deploy the application. Depending on the tech stack selected, such files could include a Dockerfile, build script, CI/CD Pipeline YAML, Terraform file, and so forth.
AuthenticationThe process of validating access to a Harbormaster platform instance. This is accomplished either directly via login using the web app or indirectly using the Harbormaster CLI.
CommandsThe list of valid instructions to issue to a Harbormaster platform instance via the CLI. The instance to connect to is accomplished during the Harbormaster CLI authentication process.
Command Line Interface (CLI)A program that runs from the command prompt of an operating system (e.g. Windows, Linux). The Harbormaster CLI is stored as a packaged Node.js application, managed by NPM @ npmjs.com.
Design AssetA design asset is offered as one of three options, made available for resale on the Harbormaster Marketplace. The options include:
- A templatized tech stack
- A templatized resource file (eg. Dockerfile, CI/CD YAML file, build script, etc…
- A model
Dynamic Reference ApplicationA group of template files that as a collection exist for a specific purpose. Often, the purpose is to capture all the architecture, design, configuration, and coding details for a certain kind of application. Importantly, a template file has an expectation of being able to access project related properties and the domain in use via the Harbormaster Metamodel.
Harbormaster uses this term interchangeably with the techstack
Harbormaster MetamodelA metamodel is considered a model of a model, and metamodeling is the process of generating such metamodels. The Harbormaster Metamodel is a common model. It is the result of processing the different supported business models. Importantly, it allows any tech stack to predictably and consistently consume a business model.
Harbormaster PlatformA deployed version of Harbormaster accessible via browser or the Harbormaster CLI. Harbormaster is available as a Docker image. Its source code is available on Git Hub and when built is best deployed on Apache Tomcat.
Harbormaster ProjectCombines a business model (via Harbormaster Metamodel), a Harbormaster Techstack, and a set of user specified options (app name, GIT credential, CI/CD target platform, and more…). Harbormaster uses this as part of the project generation process.
ModelAlthough a generic term, specifically for a software context, it is the description of a collection of business entities (e.g. Company, Customer, Account, etc..) along with the data (name, account-number, etc…) and the relationships with each other. Every application has a model and the earlier it is acknowledged and documented, the better. Importantly, the model exists separate from the technology that realizes and supports it.
Model Driven Architecture (MDA)MDA is s a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. As such, the business model is platform independent while the technical model is platform specific
The Harbormaster Architecture is based on MDA. In a nutshell, its architecture separates the business model from the technical model. Think of a tech stack as a technical model.
Platform Independent ModelCaptures business data and relationships independent of an implementing technology. This is accomplished by the Harbormaster Metamodel.
Platform Specific ModelCaptures technologies, is independent of a specific model, and is reusable across a wide spectrum of domains. This is accomplished by a tech stack.
ProjectHarbormaster generates all the components of a traditional DevOps project including:
- All application source code required for traditional CRUD capabilities, test harness, and a user interface depending on the tech stack.
- Vendor specific CI/CD YAML file to build, test, and optionally store and containerize the app.
- Docker file if required
- Terraform file if required and supported by the selected tech stack.
Project GenerationThe process of using a Harbormaster Project. As a result of this process, a set of project files is generated and committed to a target GIT repository.
PublishThe act of submitting something to the Harbormaster platform. This includes models, tech stacks and resources. What is being published can be published as public (accessible by others) or private (only accessible by the owner)
ResourceAny file that is used, and potentially shared, as part of project generation. Examples could include a Dockerfile, a CI/CD YAML file, a credentials file, or even a tech stack template file. A Project-as-Code file can include multiple references to resources to be included during project generation.
resources: available: ProjectDockerfile, myK8AccountCredentials
If the name of a resource file shares the name of a generated file, the resource will overwrite that file.
Tech Stack (Techstack)The term tech-stack and dynamic reference application are used interchangeably within Harbormaster.
Although most Harbormaster project generation outcomes are applications, there is nothing prohibiting ANY code or file-based outcome.
A tech stack is the combination of technologies used to build and run an application or project. Sometimes called a “solutions stack,” a tech stack typically consists of programming languages, frameworks, a database, front-end tools, back-end tools, and applications connected via APIs. Typically this combination is in concept only. Seldom is a tech stack the realization of its components. Not until Harbormaster has a tech stack been the contextual realization of its content of technologies.
Learn more about a Harbormaster Techstack.