Skip to content
This repository has been archived by the owner on May 17, 2021. It is now read-only.

Commit

Permalink
FAULD and DRAWBRIDGE DOCS
Browse files Browse the repository at this point in the history
  • Loading branch information
apxltd committed Aug 27, 2019
1 parent fff9671 commit 77bbb1b
Show file tree
Hide file tree
Showing 7 changed files with 191 additions and 81 deletions.
64 changes: 0 additions & 64 deletions BuildMaster/administration/applications/#.htm

This file was deleted.

60 changes: 60 additions & 0 deletions BuildMaster/administration/applications/#.md
@@ -0,0 +1,60 @@
---
title: Applications in BuildMaster
sequence: 60
show-headings-in-nav: true
---

Applications represent the components and services that you release in BuildMaster, and contain the pipelines, templates, variables, and plans used to perform releases. You can also use applications for security access control by granting and denying tasks to different users across applications.

### Creating a New Application {#creating-new-applications data-title="Creating a New Application"}

To go to he You can open the Create New Application page from the application selector drop down or the applications overview page.

{.attention .best-practice} Application Templates are only available in BuildMaster 6.2 (or BuildMaster 6.1.12+ with preview features enabled)

After clicking "New Application" you will be presented with a variety of options.

{.docs}
* **Blank Application** - create a new application with no pre-built templates
* **Clone Application** - create a clone of an existing application
* **Featured Templates** - a listing of the most commonly-used templates that we've built. This listing is driven by use-cases from our customers and is updated from time-to-time
* **User Templates** - a listing of templates created within your organization by exporting applications to a template. This listing will be maintained by your organization and will require a ProGet feed as a package source. See <a href="applications/import-export">application import and export</a>
* **All Templates and Samples** - this will be a full listing of all application templates and samples from the Templates feed

Selecting any of the templates will import the target template and will require you to fill out a few more customization settings on the Application Setup page.

### Cloning and Template Applications{#cloning-template-applications data-title="Cloning and Template Applications"}
There are times you may want to copy or "clone" an application, for example:
<ul class="docs">
<li>
<b>Templating</b> – using an application with a common set of variables and other configuration that can serve as a template for creating new applications
</li>
<li>
<b>Refactoring</b> – instead of doing a major refactor on an existing application, you can clone it to a new application and modify the new application instead
</li>
</ul>
<p>
You can use the <a href="applications/import-export">application import and export</a> feature for this.
</p>

#### Legacy Application Clone Feature
Prior to BuildMaster v6, the only way to clone applications was through the feature now called legacy application cloning. Importing applications is strongly preferred, but if you need to copy <em>legacy features</em> or configuration such as <em>legacy deployment plans</em>, you can use this feature from Admin > Legacy Features.

### Deactivating and Purging Applications{#deactivating-puring-apps data-title="Deactivating and Purging Applications"}
You can deactivate or purge applications from Admin > Deactivate and Purge Applications.

Deactivating an application will cancel all of its releases, deactivate automatic builds, and remove it from navigation and other menus throughout BuildMaster, while keeping historical data for the application. You can still access a deactivated application by URL directly.

If you do not wish to keep any data or history for these applications, you may purge them from the system completely.

## Application Groups{#apps-groups data-title="Application Groups"}
Applications may be placed in an application group, which serves a few purposes:
<ul class="docs">
<li>Visually grouping related applications in the user interface</li>
<li>Common set of variables across applications</li>
<li>Permissions that are shared across all applications in the group</li>
</ul>

Application groups are created from the application settings page, by typing in the name of a group that doesn't exist. Empty application groups are automatically deleted.

Once an application group has been created in this manner, you can use that group name when scoping variables (Admin > Variables) or access controls (Admin > Tasks).
22 changes: 22 additions & 0 deletions BuildMaster/administration/applications/application-templates.md
@@ -0,0 +1,22 @@
---
title: Application Templates
sequence: 60
show-headings-in-nav: true
---
An application template (not to be confused with an [setup template](setup-template) or a [text template](/docs/executionengine/components/text-templating)) is an [exported application](import-export) that you can use to create new applications.

{.attention .best-practice} Application Templates are available in BuildMaster 6.2+, or BuildMaster 6.1.12+ with preview features enabled.

### Inedo-provided Templates{#built-in data-title="Inedo-provided Templates"}

We've built a number of application templates to help get you started, from `GitHub CI/CD` to `Import from TeamCity`. These templates are hosted on [proget.inedo.com](https://proget.inedo.com/feeds/Templates), which BuildMaster will automatically pull from when you go to the create new application page.

### Templates Package Source {#built-in data-title="Templates Package Source"}

Behind the scenes, the Create New Application page uses a [package source](/docs/buildmaster/builds/packaging/package-sources) named `Templates` to retrieve a list of available templates. You can change this package source to a feed in your instance of ProGet, and use a connector to mix-and-match Inedo-provided templates with your own.

### Creating Your Own Templates{#creating-your-own data-title="Creating Your Own Templates"}
To create your own application, simply go to the Advanced Settings Tab in your application and export as a template. This will require that you configure your `Templates` package source to be a instance of ProGet that BuildMaster can publish packages to.
<!--
You may also want to start with a very lightweight version of an application where you already have set up the critical elements of the application but understand that more configuration is needed. This is where templates will be useful. A template is similar to an exported application except it will not contain any history.
-->
32 changes: 32 additions & 0 deletions BuildMaster/administration/applications/backup-restore.md
@@ -0,0 +1,32 @@
---
title: Backing-up & Restoring Applications
sequence: 60
show-headings-in-nav: true
---

First and foremost, you should always [routinely backup your entire BuildMaster instance](/docs/buildmaster/installation-and-maintenance/backing-up). You never know when hardware could fail, or other problems could happen. But there are also times where you may want to backup and restore individual applications: perhaps before a major refactoring, or as part of a migration from one instance of BuildMaster to another.

{.attention .best-practice} Application Backup & Restore are only available in BuildMaster 6.2 (or BuildMaster 6.1.12+ with preview features enabled)

To backup an application, first create a [package source](/docs/buildmaster/builds/packaging/package-sources) that points to a ProGet feed that BuildMaster can publish packages to. You shouldn't use the `Templates' package source for this purpose.

Then, just go to the Advanced Settings page in the application and click the "Backup Application" button. This will export your entire application (including history), and publish it to the target ProGet feed. For large applications with a lot of history, this will take a while.

## Backing up All Applications {#restoring-an-application data-title="Backing up All Applications"}
{.upcoming} This can currently done by going to Admin > Export applications, but a specific feature will be added.


## Restoring an Application from Backup{#restoring-an-application data-title="Restoring an Application"}
{.upcoming} This can currently done by going to Admin > Import applications, but a specific feature will be added.

## Routinely Backup Your Applications{#routine-backup data-title="Routinely Backup Your Applications"}
Adding backups as part of your regularly scheduled maintenance will ensure that all of your applications will be easily restorable should something happen to break your workflow. In order to set this up you will need to create a [scheduled job](/docs/buildmaster/builds/continuous-integration/build-triggers-and-monitors) that runs a custom plan with simple OtterScript that called `System::Backup-Application`

Here is an example:
```
System::Backup-Application
(
Application: HDars,
PackageSource: BuildMasterApplications
);
```
28 changes: 12 additions & 16 deletions BuildMaster/administration/applications/import-export.md
@@ -1,38 +1,33 @@
---
title: Importing and Exporting Applications
subtitle: Importing & Exporting Applications
keywords: buildmaster
title: Advanced Import & Export
sequence: 60
show-headings-in-nav: true
---

BuildMaster can export an application's configuration and history into a [universal package](/upack), and then publish that package to a feed in [ProGet](/proget) or a file on a disk. You import applications in the same manner.
Behind the scenes, the [Application Template](application-templates) and [Backup & Restore](backup-restore) features use the application import and export feature.

## Exporting Applications {#exporting data-title="Exporting Applications"}

You can open the application export page from the application settings, or from Admin > Export Applications. When exporting applications, you have the following options:
You can open the application export page from the your applications advanced settings page (Backup... > Advanced), or from Admin > Export Applications.

When exporting applications, you have the following options:

{.docs}
- **Applications** - list of applications to export; this option will only appear when the page is accessed from the administration section
- **Package name** - optional; the name of the universal package to create; this defaults to the application name, and is ignored if multiple applications are selected
- **Package version** - optional, the version of the universal package to create; this defaults to 0.0.0
- **Include history** - when selected, the release history and deployment logs will be included in the package. Note that this does not include artifacts

You will also select how to publish the package, from one of two options:
You will also select where to publish the package from a list of Package Sources.

{.docs}
- **Publish to Universal Feed** - a feed on a ProGet instance
- **Save to Disk Path** - a local or network path that the BuildMaster service can write to
- **Package sources** are configured as a feed on a ProGet instance with a feed url will become a repository for packages that you export, import, backup, restore, or templatize. A package source is simply configured as a url and credentials to a ProGet feed for univeral packages.

Before publishing to a feed, you will need to setup an Inedo Product [resource credential](/docs/buildmaster/administration/resource-credentials) with the URL and optionally an API key to your ProGet server.

## Importing Applications {#importing data-title="Importing Applications"}
You can import an application or template that has been exported to a pre-configured package source. This will save time by minimizing the time needed to setup an application that would have similar plans and pipelines.

You can open the application import dialog form the create new application page, or from Admin > Import Application. When importing, you must first select a source package:

{.docs}
- **Import from Universal Feed** - import a specific package and version from a ProGet feed
- **Load from Disk Path** -a local or network path that the BuildMaster service can read from
To import an application go to Admin > Import Application. When importing, you must first select a source package:

You will also be presented with the following options:

Expand All @@ -46,10 +41,11 @@ Before importing from a feed, you will need to setup an Inedo Product resource c

Applications will be exported as a standard [universal package](/docs/proget/core-concepts/packages) which is essentially a zip file containing application configuration and history, along with a JSON-based manifest file (`upack.json`) that describes the contents of the package.

In addition to the standard name and version properties, BuildMaster will include `a _exportDate` and `_bmVersion` property in `upack.json`. The package contents will be a collection of JSON-formatted files:
In addition to the standard name and version properties, BuildMaster will include `a _exportDate` and `_bmVersion` property in `upack.json`. The package contents will be a collection of JSON-formatted files including:

| Filename | Description |
| -------- | ----------- |
| **app.json** | Information about the application |
| **deployables.json** | Deployables and deployable variables |
| **privileges.json** | Application-scoped privileges |
| **pipelines.json** | Pipelines |
Expand All @@ -70,4 +66,4 @@ In addition to the standard name and version properties, BuildMaster will includ
| **log-scopes.json** | Historic; log "scopes" (headings) in log files |
| **log-entries.json** | Historic; log text entries within a scope |

Because these files are intended to only be used by BuildMaster, the precise format of these files is documented only in the source code (but you can [request source code access](/contact)).
This is not an exhaustive list of files, and because these files are intended to only be used by BuildMaster, the precise format of these files is documented only in the source code (but you can [request source code access](/contact)).

0 comments on commit 77bbb1b

Please sign in to comment.