diff --git a/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/agent-config.md b/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/agent-config.md index 84f0a58f..1e1dc109 100644 --- a/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/agent-config.md +++ b/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/agent-config.md @@ -465,8 +465,8 @@ docker run \ -e MODERNE_AGENT_MAVEN_0_LOCALREPOSITORY=~/.moderne-maven \ -e MODERNE_AGENT_MAVEN_0_USERNAME \ -e MODERNE_AGENT_MAVEN_0_PASSWORD \ --e MODERNE_AGENT_ORGANIZATION_URL=http://localhost:8091 \ --e MODERNE_AGENT_ORGANIZATION_UPDATE_INTERVAL_SECONDS=600 \ +-e MODERNE_AGENT_ORGANIZATION_SERVICE_URL=http://localhost:8091 \ +-e MODERNE_AGENT_ORGANIZATION_SERVICE_UPDATE_INTERVAL_SECONDS=600 \ -p 8080:8080 moderne-agent:latest ``` @@ -498,8 +498,8 @@ java -jar moderne-agent-{version}.jar \ --moderne.agent.artifactory[0].astQueryFilters[1]='{"repo":{"$eq":"example-maven"}}' \ --moderne.agent.maven[0].url=https://myartifactory.example.com/artifactory/libs-releases-local \ --moderne.agent.maven[0].localRepository=~/.moderne-maven \ ---moderne.agent.organization.url=http://localhost:8091 \ ---moderne.agent.organization.updateIntervalSeconds=600 \ +--moderne.agent.organization.service.url=http://localhost:8091 \ +--moderne.agent.organization.service.updateIntervalSeconds=600 \ ``` @@ -545,8 +545,8 @@ docker run \ -e MODERNE_AGENT_MAVEN_0_LOCALREPOSITORY=~/.moderne-maven \ -e MODERNE_AGENT_MAVEN_0_USERNAME \ -e MODERNE_AGENT_MAVEN_0_PASSWORD \ --e MODERNE_AGENT_ORGANIZATION_URL=http://localhost:8091 \ --e MODERNE_AGENT_ORGANIZATION_UPDATE_INTERVAL_SECONDS=600 \ +-e MODERNE_AGENT_ORGANIZATION_SERVICE_URL=http://localhost:8091 \ +-e MODERNE_AGENT_ORGANIZATION_SERVICE_UPDATE_INTERVAL_SECONDS=600 \ -e MODERNE_AGENT_RECIPE_USEONLYCONFIGURED=true \ -p 8080:8080 moderne-agent:latest @@ -580,8 +580,8 @@ java -jar moderne-agent-{version}.jar \ --moderne.agent.artifactory[0].astQueryFilters[1]='{"repo":{"$eq":"example-maven"}}' \ --moderne.agent.maven[0].url=https://myartifactory.example.com/artifactory/libs-releases-local \ --moderne.agent.maven[0].localRepository=~/.moderne-maven \ ---moderne.agent.organization.url=http://localhost:8091 \ ---moderne.agent.organization.updateIntervalSeconds=600 \ +--moderne.agent.organization.service.url=http://localhost:8091 \ +--moderne.agent.organization.service.updateIntervalSeconds=600 \ --moderne.agent.recipe.useOnlyConfigured=true ``` @@ -646,8 +646,8 @@ docker run \ -e MODERNE_AGENT_MAVEN_0_LOCALREPOSITORY=~/.moderne-maven \ -e MODERNE_AGENT_MAVEN_0_USERNAME \ -e MODERNE_AGENT_MAVEN_0_PASSWORD \ --e MODERNE_AGENT_ORGANIZATION_URL=http://localhost:8091 \ --e MODERNE_AGENT_ORGANIZATION_UPDATE_INTERVAL_SECONDS=600 \ +-e MODERNE_AGENT_ORGANIZATION_SERVICE_URL=http://localhost:8091 \ +-e MODERNE_AGENT_ORGANIZATION_SERVICE_UPDATE_INTERVAL_SECONDS=600 \ -p 8080:8080 moderne-agent:latest ``` @@ -681,8 +681,8 @@ java -jar moderne-agent-{version}.jar \ --moderne.agent.artifactory[0].astQueryFilters[1]='{"repo":{"$eq":"example-maven"}}' \ --moderne.agent.maven[0].url=https://myartifactory.example.com/artifactory/libs-releases-local \ --moderne.agent.maven[0].localRepository=~/.moderne-maven \ ---moderne.agent.organization.url=http://localhost:8091 \ ---moderne.agent.organization.updateIntervalSeconds=600 \ +--moderne.agent.organization.service.url=http://localhost:8091 \ +--moderne.agent.organization.service.updateIntervalSeconds=600 \ ``` * Note: System properties can be used in place of arguments. For example, you can use `-Dmoderne.agent.token={token_value}` as an argument instead of `--moderne.agent.token={token_value}`. diff --git a/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/agent-variables.md b/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/agent-variables.md index 0a8b0f32..60033b38 100644 --- a/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/agent-variables.md +++ b/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/agent-variables.md @@ -414,8 +414,8 @@ docker run \ ```bash java -jar moderne-agent-{version}.jar \ # ... Existing arguments ---moderne.agent.organization.url=http://localhost:8091 \ ---moderne.agent.organization.updateIntervalSeconds=600 \ +--moderne.agent.organization.service.url=http://localhost:8091 \ +--moderne.agent.organization.service.updateIntervalSeconds=600 \ # ... Additional arguments ``` diff --git a/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-agent-files-service.md b/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-agent-files-service.md new file mode 100644 index 00000000..c4738481 --- /dev/null +++ b/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-agent-files-service.md @@ -0,0 +1,147 @@ +--- +sidebar_label: File-based organizational configuration +description: How to configure the Moderne agent to use files for organizational structure. +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# How to configure the Moderne agent to use files for organizational structure + +In order for Moderne to obtain information about your organizational structure and their related permissions, you will either need to [create a dedicated Organizations service](./configure-organizations-service.md) or you will need to create some configuration files and direct the Moderne agent to said files. + +We'd recommend the file-based approach as it's a lot simpler to maintain due to the fact you don't have to run and maintain multiple services. + +This guide will walk you through everything you need to know to set this up. + +## Configuration files + +The first thing you will need to do is to create one or more files that the agent will use to determine the structure of your organizations and their permissions. Let's walk through each of these. + +### `repos.csv` (required) + +This is a **required** file which lets the agent know what repositories should be associated with what organizations. This file must be a CSV file that follows this format of: `cloneUrl`, `branch`, and then a list of one or more organizations – with each column being named org + a number (e.g., `org1`, `org2`). The organization on the left is a child of the organization on its right. + +Let's take a look at an example of what this might look like: + +| cloneUrl | branch | org1 | org2 | org3 | +|---------------|----------|---------------|------------------|------| +| `https://github.com/openrewrite/rewrite-recipe-bom` | main | Open Source | ALL | | +| `https://github.com/Netflix/spectator-go` | main | Netflix - ALL | Open Source | ALL | +| `https://github.com/Netflix/spectator-go` | main | Netflix - GO | Open Source - GO | ALL | + +The organizations under `org1`, `org2`, and `org3` represent the hierarchy of organizations. There is no limit to the number of organizations that can be provided via this CSV. + +The above example would generate an organizational structure like this: + +```text +* ALL + * Open Source + * https://github.com/openrewrite/rewrite-recipe-bom:main + * Netflix - ALL + * https://github.com/Netflix/spectator-go:main + * Open Source - GO + * Netflix - GO + * https://github.com/Netflix/spectator-go:main +``` + +To generate this `repos.csv` file, we recommend using "[repo fetchers](https://github.com/moderneinc/repository-fetchers)" – which are scripts we've created to automate grabbing a list of repositories from various SCMs. + +### `commitOptions.txt` (optional) + +This is an optional file which allows you to configure custom commit options for individual repositories. By commit options, we mean the various ways that code can be committed such as only allowing pull requests for code changes –– or allowing people to commit directly to main. + +If you don't provide this file, we'll fall back to the default commit options [you specified in your agent configuration](./agent-variables.md#all-agent-configuration-variables) (if you configured that). If you didn't configure that, then we will assume that you want all commit options available to every repository. + +For more information on commit options and how to configure this file, please see our [Moderne organizations example repository](https://github.com/moderneinc/moderne-organizations/tree/main?tab=readme-ov-file#commit-options). + +Below you can find an example of what this file might look like: + +```text title="commitOptions.txt" +Open Source=Branch,PullRequest +Netflix - ALL=Branch,Direct,PullRequest +``` + +### `idMapping.txt` (optional) + +This is an optional file which is only useful if you want to have multiple organizations with the same name. For instance, maybe you want to have an "Open Source" and a "Private Source" organization, and then you want to have a "Netflix" organization with different repositories in each of those. If that's not something that applies to you, please skip this section. + +By default, the ID for an organization is the name you provided in the `repos.csv` file. In [our repos.csv example](#reposcsv-required), the names/IDs of the organizations are: `ALL`, `Open Source`, `Netflix - GO`, `Netflix - ALL`, etc. + +If you wanted to make it so `Netflix - GO` and `Netflix - ALL` were called `Netflix` in the UI under their respective parent organizations, you would need to create an `idMapping.txt` file that looks like: + +```text title="idMapping.txt" +Netflix - GO=Netflix +Netflix - ALL=Netflix +``` + +The above `idMapping.txt` file with the previously referenced `repos.csv` would generate an organizational structure which looks like this: + +```text +* ALL + * Open Source + * https://github.com/openrewrite/rewrite-recipe-bom:main + * Netflix + * https://github.com/Netflix/spectator-go:main + * Open Source - GO + * Netflix + * https://github.com/Netflix/spectator-go:main +``` + + +### `devCenter.json` (optional) + +This is an optional file which is used to generate DevCenters. For more details about configuring your DevCenter and what this file should look like [please see our creating a DevCenter guide](../dev-center.md#step-3-create-and-configure-the-devcenter). + +The provided `devCenter.json` should follow the same structure as [our Organizations service example repository](https://github.com/moderneinc/moderne-organizations/blob/main/src/main/resources/devcenter.json). + +## Agent configuration + +With the files created, you will then need to let the agent know about them. To do so, you will need to provide the following variables in your agent startup command: + + + + +**Variables:** + +| Argument Name | Required | Description | +|-----------------------------------------------------|----------|--------------------------------------------------------------------------------------------------------------| +| `MODERNE_AGENT_ORGANIZATION_FILE_REPOSCSVPATH` | `true` | The file path to a CSV file which outlines your organization structure. | +| `MODERNE_AGENT_ORGANIZATION_FILE_COMMITOPTIONSPATH` | `false` | The file path a text file which sets commit options for specific repositories. | +| `MODERNE_AGENT_ORGANIZATION_FILE_IDMAPPINGPATH` | `false` | The file path to a text file which overrides any organization name to a different name than the provided ID. | +| `MODERNE_AGENT_ORGANIZATION_FILE_DEVCENTERPATH` | `false` | The file path to a JSON file which outlines the DevCenter for specific organizations. | + +**Example:** + +```bash +docker run \ +# ... Existing variables +-e MODERNE_AGENT_ORGANIZATION_FILE_REPOSCSVPATH=/Users/MY_USER/Documents/repos.csv \ +# ... Additional variables +``` + + + + + +**Arguments:** + +| Argument Name | Required | Description | +|-------------------------------------------------------|----------|--------------------------------------------------------------------------------------------------------------| +| `--moderne.agent.organization.file.reposCsvPath` | `true` | The file path to a CSV file which outlines your organization structure. | +| `--moderne.agent.organization.file.commitOptionsPath` | `false` | The file path a text file which sets commit options for specific repositories. | +| `--moderne.agent.organization.file.idMappingPath` | `false` | The file path to a text file which overrides any organization name to a different name than the provided ID. | +| `--moderne.agent.organization.file.devCenterPath` | `false` | The file path to a JSON file which outlines the DevCenter for specific organizations. | + +**Example:** + +```bash +java -jar moderne-agent-{version}.jar \ +# ... Existing arguments +--moderne.agent.organization.file.reposCsvPath=/Users/MY_USER/Documents/repos.csv \ +# ... Additional arguments +``` + + + + diff --git a/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/migrate-from-an-organization-service-files-on-the-agent.md b/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/migrate-from-an-organization-service-files-on-the-agent.md new file mode 100644 index 00000000..eb2ef57f --- /dev/null +++ b/docs/administrator-documentation/moderne-platform/how-to-guides/agent-configuration/migrate-from-an-organization-service-files-on-the-agent.md @@ -0,0 +1,120 @@ +--- +sidebar_label: Migrating to file-based organizations +description: How to migrate from an Organization service to a file-based organizational structure. +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# How to migrate from an Organization service to a file-based organizational structure + +If you've decided that you no longer want to run an [Organization service](./configure-organizations-service.md) and, instead, you'd like to configure your organizations with files, then please follow along with this guide. + +## Step 1: Ensure that you have the expected files + +### `repos.csv` (required) + +The first thing the agent needs is knowledge of how your organizations are structured. To provide it with that information, you will need to create a `repos.csv` file that outlines your organizational structure. If you previously [created your Organization service using our template](https://github.com/moderneinc/moderne-organizations), please use your existing `repos.csv` file. + +If you do not have a `repos.csv` file, please follow the setup instructions in our [configuring the agent with file sources guide](./configure-agent-files-service.md#reposcsv). + +### `devCenter.json` (optional) + +If you want to create DevCenters, you will need to provide the agent a `devCenter.json` file. This file contains a list of DevCenters and their associated organizations. This file should follow the same format as [the one in our moderne-organization example repository](https://github.com/moderneinc/moderne-organizations/blob/fbc92af9e31076c6dea95499517f7f4e53fdc33c/src/main/resources/devcenter.json#L3). + +If you [created your Organization service using our template repository](https://github.com/moderneinc/moderne-organizations), you most likely already have a `devCenter.json` file which matches the expected format. If not, you will need to generate a file which matches the above format. + +### `id-mapping.txt` (optional) + +The `id-mapping.txt` file is an optional file that is only beneficial if you want to have multiple organizations with the same display name. If you are not in that situation, feel free to skip this section. + +If you [created your Organizational service using our template](https://github.com/moderneinc/moderne-organizations), and you are already using this feature, then you should already have an `id-mapping.txt` file that you can use here. If you don't have one, please [follow the setup instructions in our configuring the agent with files guide](./configure-agent-files-service.md#idmappingtxt-optional). + +### `commitOptions.txt` (optional) + +This is an optional file which allows you to configure custom commit options for individual repositories. By commit options, we mean the various ways that code can be committed such as only allowing pull requests for code changes –– or allowing people to commit directly to main. + +If you don't provide this file, we'll fall back to the default commit options [you specified in your agent configuration](./agent-variables.md#all-agent-configuration-variables) (if you configured that). If you didn't configure that, then we will assume that you want all commit options available to every repository. + +If you [created your Organizational service using our template](https://github.com/moderneinc/moderne-organizations) and you are already using this feature, then you should use your existing `commitOptions.txt` file. If you don't have one, please [follow the setup instructions in our configuring the agent with files guide](./configure-agent-files-service.md#commitoptionstxt-optional) + +## Step 2: Update the agent to point to the files + +After you have created or collected the above files please put them in a location where your agent has access to. Next, please update your agent run command and add the following variables: + + + + +**Variables:** + +| Argument Name | Required | Description | +|-----------------------------------------------------|----------|--------------------------------------------------------------------------------------------------------------| +| `MODERNE_AGENT_ORGANIZATION_FILE_REPOSCSVPATH` | `true` | The file path to a CSV file which outlines your organization structure. | +| `MODERNE_AGENT_ORGANIZATION_FILE_COMMITOPTIONSPATH` | `false` | The file path a text file which sets commit options for specific repositories. | +| `MODERNE_AGENT_ORGANIZATION_FILE_IDMAPPINGPATH` | `false` | The file path to a text file which overrides any organization name to a different name than the provided ID. | +| `MODERNE_AGENT_ORGANIZATION_FILE_DEVCENTERPATH` | `false` | The file path to a JSON file which outlines the DevCenter for specific organizations. | + +**Example:** + +```bash +docker run \ +# ... Existing variables +-e MODERNE_AGENT_ORGANIZATION_FILE_REPOSCSVPATH=/Users/MY_USER/Documents/repos.csv \ +# ... Additional variables +``` + + + + + +**Arguments:** + +| Argument Name | Required | Description | +|-------------------------------------------------------|----------|--------------------------------------------------------------------------------------------------------------| +| `--moderne.agent.organization.file.reposCsvPath` | `true` | The file path to a CSV file which outlines your organization structure. | +| `--moderne.agent.organization.file.commitOptionsPath` | `false` | The file path a text file which sets commit options for specific repositories. | +| `--moderne.agent.organization.file.idMappingPath` | `false` | The file path to a text file which overrides any organization name to a different name than the provided ID. | +| `--moderne.agent.organization.file.devCenterPath` | `false` | The file path to a JSON file which outlines the DevCenter for specific organizations. | + +**Example:** + +```bash +java -jar moderne-agent-{version}.jar \ +# ... Existing arguments +--moderne.agent.organization.file.reposCsvPath=/Users/MY_USER/Documents/repos.csv \ +# ... Additional arguments +``` + + + + +## Step 3: Ensure the agent does not have Organization service variables + +Lastly, please make sure that the following configurations are not included in your agent run command: + + + + +**Variables:** + +| Argument Name | +|--------------------------------------------------------------| +| `MODERNE_AGENT_ORGANIZATION_SERVICE_URL` | +| `MODERNE_AGENT_ORGANIZATION_SERVICE_UPDATE_INTERVAL_SECONDS` | +| `MODERNE_AGENT_ORGANIZATION_SERVICE_SKIPSSL` | + + + + + +**Arguments:** + +| Argument Name | +|--------------------------------------------------------------| +| `--moderne.agent.organization.service.url` | +| `--moderne.agent.organization.service.updateIntervalSeconds` | +| `--moderne.agent.organization.service.skipSsl` | + + + + diff --git a/docs/administrator-documentation/moderne-platform/how-to-guides/dev-center.md b/docs/administrator-documentation/moderne-platform/how-to-guides/dev-center.md index 8a0b14d9..aef104ec 100644 --- a/docs/administrator-documentation/moderne-platform/how-to-guides/dev-center.md +++ b/docs/administrator-documentation/moderne-platform/how-to-guides/dev-center.md @@ -13,7 +13,7 @@ In this doc, we'll walk you through everything you need to know to configure you In order to configure any DevCenters, there are two things you need to do (which we'll walk through in more detail below): -1. You must have [configured an Organizations service](./organizations-service.md). +1. You must have either [configured an Organizations service](./organizations-service.md) or [directed the agent to a devCenter.json file](./agent-configuration/configure-agent-files-service.md#devcenterjson-optional). 2. You must ensure that the [Moderne agent Maven configuration](./agent-configuration/configure-an-agent-with-maven-repository-access.md) only has **one** entry where the recipe source is set to `true`. (Note: this does not apply to one Maven repository configured identically in multiple agents. Only that you cannot have two distinct Maven repositories configured where recipe source is set to `true`.) ### Organizations service @@ -69,7 +69,7 @@ The [DevCenter object](https://github.com/moderneinc/moderne-organizations/blob/ ## Step 3: Create and configure the DevCenter -Your service must fulfill the [GraphQL contract mentioned in the previous step](https://github.com/moderneinc/moderne-organizations/blob/main/src/main/resources/schema/organizations.graphqls). If you chose to use [our template repository](https://github.com/moderneinc/moderne-organizations) for your Organizations service, you will need to run `./gradlew generateGraphqlJava copyGeneratedGraphql` to [get the latest types](https://github.com/moderneinc/moderne-organizations/pull/61/files), and then you will need to configure your own [devcenter.json file](https://github.com/moderneinc/moderne-organizations/blob/main/src/main/resources/devcenter.json). +Your Organization service must fulfill the [GraphQL contract mentioned in the previous step](https://github.com/moderneinc/moderne-organizations/blob/main/src/main/resources/schema/organizations.graphqls), or [your agent must be directed to a `devCenter.json` file](./agent-configuration/configure-agent-files-service.md#devcenterjson-optional). If you chose to use [our template repository](https://github.com/moderneinc/moderne-organizations) for your Organizations service, you will need to run `./gradlew generateGraphqlJava copyGeneratedGraphql` to [get the latest types](https://github.com/moderneinc/moderne-organizations/pull/61/files), and then you will need to configure your own [devcenter.json file](https://github.com/moderneinc/moderne-organizations/blob/main/src/main/resources/devcenter.json). The `devcenter.json` file is where all of the configuration lies for DevCenters. In this file, you can configure things like which organizations should have a DevCenter, what cards should appear on said DevCenter, and what the keys should be on the cards. This file must follow the GraphQL schema mentioned above. diff --git a/docs/administrator-documentation/moderne-platform/how-to-guides/organizations-service.md b/docs/administrator-documentation/moderne-platform/how-to-guides/organizations-service.md index 9f5a92da..9d993521 100644 --- a/docs/administrator-documentation/moderne-platform/how-to-guides/organizations-service.md +++ b/docs/administrator-documentation/moderne-platform/how-to-guides/organizations-service.md @@ -1,22 +1,43 @@ --- -sidebar_label: Configuring the Organizations service -description: How to create and configure an Organizations service to group repositories. +sidebar_label: Configuring organizational structure +description: How to create and configure an organizational structure to group repositories. --- -# Configuring the Organizations service +# How to create and configure an organizational structure to group repositories -Many organizations desire the ability to dynamically control the organizational structure (repository groupings) of their repositories within the Moderne Platform. To facilitate this need, Moderne provides an optional integration with an Organizations service that is hosted in your environment. +Many organizations desire the ability to dynamically control the organizational structure (repository groupings) of their repositories within the Moderne Platform. To facilitate this need, Moderne offers two options: integration with an Organizations service that is hosted in your environment or a simpler, file-based system. -Let's walk through everything you need to know to build and integrate such a service with Moderne. +Let's walk through everything you need to know about both of these options. -## Integration requirements +## Which to pick? -In order to dynamically control the organizational structure in Moderne, you will need to: +While both options offer you the ability to control an organizational structure, there are advantages/disadvantages to each. -1. Create and deploy an Organizations service that fulfills [this GraphQL contract](https://github.com/moderneinc/moderne-organizations/blob/main/src/main/resources/schema/organizations.graphqls) _in your environment_ -2. [Configure your Moderne agent to point to this service](./agent-configuration/configure-organizations-service.md) +Running an Organization service allows for more flexibility when setting up the required GraphQL and REST endpoint. On the other hand, providing the agent with the files requires less setup at the cost of limited flexibility. -## Coding the Organizations service +Because of that, **we'd recommend the file-based approach** unless you have a compelling reason to not do that. + +:::tip +When selecting which option is best for you, keep in mind that you can change the approach you have taken later. +::: + +## Providing the files to the agent (recommended) + +To configure an organizational structure with files, you will need to: + +1. [Review the list of potential files which can be provided on the agent](./agent-configuration/configure-agent-files-service.md). +2. Determine which files your setup requires – and then create those. +3. Place the files somewhere your agent has access to. +4. Update your [agent configuration](./agent-configuration/configure-agent-files-service.md#agent-configurations) to point to the files. + +## Running an Organization service + +To configure an organization structure with a dedicated service, you will need to: + +1. Create and deploy an Organizations service that fulfills [this GraphQL contract](https://github.com/moderneinc/moderne-organizations/blob/main/src/main/resources/schema/organizations.graphqls) and [this REST contract](https://github.com/moderneinc/moderne-organizations/blob/main/src/main/java/io/moderne/organizations/OrganizationController.java) your environment._ +2. [Configure your Moderne agent to point to this service](./agent-configuration/configure-organizations-service.md). + +### Coding the Organizations service You have two main options for building this service. You can: @@ -25,7 +46,7 @@ You have two main options for building this service. You can: We generally recommend forking the template and modifying it as, in most cases, that will be faster and easier than building it yourself. Regardless of which one you choose, however, some developer time will be required on your end. -## Deploying the service +### Deploying the service How you deploy the service is largely up to your company. With that being said, there are a few important things to be aware of: @@ -33,7 +54,7 @@ How you deploy the service is largely up to your company. With that being said, * Moderne will make a request per repository to the Organizations service once every 10 minutes by default (you can change this interval in your [agent configuration](./agent-configuration/configure-organizations-service.md)). Please ensure that you have metrics to track how this service is performing so you can adjust it over time. * You'll want a minimum system spec of 2 CPU cores, 8 GB of memory, and at least 10 GB of persistent storage. -## FAQ +## Organizations service FAQ ### If the Organizations service stops responding (e.g., the service is down), what is the expected behavior? diff --git a/sidebars.ts b/sidebars.ts index 00e87cf8..9d547ab1 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -293,6 +293,7 @@ const sidebars: SidebarsConfig = { 'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-an-agent-with-artifactory-access', 'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configuring-artifactory-with-recipes', 'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-an-agent-with-pypi-access-visualizations', + 'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-agent-files-service', 'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-organizations-service', 'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-an-agent-with-generic-http-tools-for-use-in-recipes', 'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-an-agent-with-strict-recipe-sources', @@ -304,6 +305,7 @@ const sidebars: SidebarsConfig = { ], }, 'administrator-documentation/moderne-platform/how-to-guides/organizations-service', + 'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/migrate-from-an-organization-service-files-on-the-agent', 'administrator-documentation/moderne-platform/how-to-guides/dev-center', 'administrator-documentation/moderne-platform/how-to-guides/create-visualization', 'administrator-documentation/moderne-platform/how-to-guides/importing-external-recipes',