Terminology Changes from MintPress v3 to MintPress v4
The following guide is aimed for customers migrating from MintPress v3 to MintPress v4 and attempts to highlight the changes in concepts/terminology between the two versions.
Node Hierarchy
projects
├── project A
│ ├── asset-templates — Templates for creating new assets
│ ├── assets — Assets at project level; all assets are linked to an asset-template
│ ├── changes
│ │ └── activity — Records or definitions of change activities
│ ├── environments — List of environments
│ │ └── cix1
│ │ └── assets — Environment-specific assets for cix1
│ ├── properties — Properties applicable at a project level
│ ├── scheduled-changes — Definitions of scheduled or planned changes
│ ├── settings — Project-level settings
│ └── workflows — Workflow definitions
MintPress v4 is structured around a node hierarchy:
- Project – Top-level node.
- Environments – Contained within projects.
- Assets – Contained within environments, but can also exist at the project level for shared services cross-environment components or tasks (e.g., SSL renewals, Network infrastructure, DNS, etc.).
Asset Templates
- Defined at the project level.
- Can optionally have an associated MintModel (data model):
- With MintModel: MintPress parses the model automatically and displays available actions.
- Without MintModel: Only explicitly defined actions in actions.rb file are available.
Security
- Security operates on the node hierarchy.
- Any node can be included in a security policy to govern access.
Git Repository and Naming Conventions
All asset templates are stored in a Git repository:
-
Without MintModel:
<git_repo>/<asset_template_code> -
With MintModel:
<git_repo>/MintModel/templates/assets/<asset_template_code.json.erb>
Property System
root
├── properties
│ ├── projects
│ │ ├── common-for-all-projects.json — Properties shared across all projects
│ │ ├── project-A
│ │ │ ├── project-A-project-properties.json — Project-level properties for project-A
│ │ │ └── environments
│ │ │ ├── common-for-all-envs-in-project-A.json — Properties shared across all environments
│ │ │ ├── dev
│ │ │ │ ├── dev-env-properties.json — Properties specific to the development environment
│ │ │ │ └── assets
│ │ │ │ ├── common-for-all-assets-in-dev.json — Properties common to all dev assets
│ │ │ │ ├── soa - SOA Asset
│ │ │ │ │ ├── soa-1.json — SOA asset properties file #1
│ │ │ │ │ └── soa-2.json — SOA asset properties file #2
│ │ │ │ └── obp — OBP Asset
│ │ │ └── staging — Staging environment