Rewrite for clarity

This commit is contained in:
Mike Solomon
2025-03-12 10:57:36 -07:00
parent 8eeed28c2d
commit 2f0b29d414
5 changed files with 156 additions and 114 deletions

View File

@@ -1,87 +1,115 @@
---
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';
# Configure the agent with file sources
# How to configure the Moderne agent to use files for organizational structure
In order for Moderne to obtain information about your organizational structure, you will need to create some configuration files and direct the Moderne agent to said files. This guide will explain how to do both of those things.
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.
## repos.csv
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 is a **required** file, which outlines the repositories and the organizations which they are associated with.
When provided your organization details, they must be provided in a CSV file with the following format:
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/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`, `org3`, etc. represent the hierarchy of organizations. There is no limit to the number of organizations that can be provided via this CSV.
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 be used to generate an organizational listing of the following:
The above example would generate an organizational structure like this:
```text
* ALL
* Open Source
* `https://github.com/openrewrite/rewrite-recipe-bom:main`
* https://github.com/openrewrite/rewrite-recipe-bom:main
* Netflix - ALL
* `https://github.com/Netflix/spectator-go:main`
* https://github.com/Netflix/spectator-go:main
* Open Source - GO
* Netflix - GO
* `https://github.com/Netflix/spectator-go:main`
* https://github.com/Netflix/spectator-go:main
```
To generate this `repos.csv`, we recommend using "[repo fetchers](https://github.com/moderneinc/repository-fetchers)".
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
### `commitOptions.txt` (optional)
This is an optional file, which allows for custom commit options for individual repositories.
Commit options let you configure how code changes can be committed. For example, you could specify that you only want your organization to allow pull requests. Or you could allow people to commit the results directly to main.
[For more details check out this guide](https://github.com/moderneinc/moderne-organizations/tree/main?tab=readme-ov-file#commit-options).
When no commit options are provided for a specific repositories we will fall back the default commit options which are specified in the [agent configuration](agent-variables.md#all-agent-configuration-variables) or all commit options if no default are provided.
If you want to provide specific commit options for specific repositories, these can be provided in a text file with the following format:
```text
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
### `idMapping.txt` (optional)
This is an optional file, which set an organization name. By default, an organization name is the same as its ID, these organization IDs are provided in the repos.csv.
A use case for using the `idMapping.txt`, is that there are 2 organizations under different parent organizations that should have the same name. This cannot be achieved using the IDs, because IDs must be unique, but this can be achieved using the `idMapping.txt`
These can be overwritten by provided a text file with the following format:
```text
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 with the previously reference repos.csv would generate an organizational structure which displays like this:
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`
* https://github.com/openrewrite/rewrite-recipe-bom:main
* Netflix
* `https://github.com/Netflix/spectator-go:main`
* https://github.com/Netflix/spectator-go:main
* Open Source - GO
* Netflix
* `https://github.com/Netflix/spectator-go:main`
* https://github.com/Netflix/spectator-go:main
```
## devCenter.json
### `devCenter.json` (optional)
This is an optional file, which is used to generate the DevCenter. For more details about [configuring your DevCenter please reference this guide](../dev-center.md#step-3-create-and-configure-the-devcenter).
The provided [devCenter.json should follow the structure of this file](https://github.com/moderneinc/moderne-organizations/blob/main/src/main/resources/devcenter.json).
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).
## Agent Configurations
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:
<Tabs groupId="agent-type">
<TabItem value="oci-container" label="OCI Container">
**Variables:**
| Argument Name | Required | Default | Description |
|-----------------------------------------------------|----------|--------------------------------------------|----------------------------------------------------------------------------------------------------|
| `MODERNE_AGENT_ORGANIZATION_FILE_REPOSCSVPATH` | `true` | | File path to the CSV file which outlines your organization structure |
| `MODERNE_AGENT_ORGANIZATION_FILE_COMMITOPTIONSPATH` | `false` | All options available. | File path a text file which sets commit options for specific repositories |
| `MODERNE_AGENT_ORGANIZATION_FILE_IDMAPPINGPATH` | `false` | Organization use provided ID as their name | File path to a text which overrides any organization name to a different name then the provided ID |
| `MODERNE_AGENT_ORGANIZATION_FILE_DEVCENTERPATH` | `false` | A default Devcenter is provided | File path to a JSON file which outlines the DevCenter for specific organizations |
| 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:**
@@ -98,12 +126,12 @@ docker run \
**Arguments:**
| Argument Name | Required | Default | Description |
|-------------------------------------------------------|----------|--------------------------------------------|------------------------------------------------------------------------------------------------------|
| `--moderne.agent.organization.file.reposCsvPath` | `true` | | File path to the CSV file which outlines your organization structure |
| `--moderne.agent.organization.file.commitOptionsPath` | `false` | All options available. | File path a text file which sets commit options for specific repositories |
| `--moderne.agent.organization.file.idMappingPath` | `false` | Organization use provided ID as their name | File path to a text which overrides any organizations name to a different name then the provided ID |
| `--moderne.agent.organization.file.devCenterPath` | `false` | A default Devcenter is provided | File path to a JSON file which outlines the DevCenter for specific organizations |
| 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:**

View File

@@ -1,68 +1,67 @@
---
sidebar_label: Migrating off of an Organization Service
description: How to migrate off of an Organization to provide the organization details from the Agent
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';
# Migrate from an Organization Service to the organization details as files on the Agent
# How to migrate from an Organization service to a file-based organizational structure
If you are migrating off of an Organization to provide your organization details as files on your Agent, this guide
will walk you through the steps.
You will first need to identify and generate the files which apply to your setup.
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.
### repos.csv (required)
## Step 1: Ensure that you have the expected files
You must provide a `repos.csv`, this file outlines your organization structure. If you created
your [organization using the template](https://github.com/moderneinc/moderne-organizations), use your existing
`repos.csv`.
If you do not have a `repos.csv`, follow
these [setup instructions to generate one](configure-agent-files-service.md#reposcsv).
### `repos.csv` (required)
### DevCenter.json (optional)
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).
If you are using the DevCenter you will need to provide a devCenter. This file contains a list of devCenters and the
associated organization, here is
a [reference to the expected format](https://github.com/moderneinc/moderne-organizations/blob/fbc92af9e31076c6dea95499517f7f4e53fdc33c/src/main/resources/devcenter.json#L3).
If you created your [organization using the template](https://github.com/moderneinc/moderne-organizations), you most
likely already have a devCenter.json which matches the expected format. If not you will need to generate a file
which match the above format.
### `devCenter.json` (optional)
### idMapping.txt (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).
Many setups don't use the id mapping, this is used if multiple organizations with the same display name, if you are not
using this feature do not provide this file. If you created
your [organization using the template](https://github.com/moderneinc/moderne-organizations) and you are using this
feature use your existing `id-mapping.txt`.
If you do not have an `id-mapping.txt`, follow
these [setup instructions to generate one](configure-agent-files-service.md#idmappingtxt).
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.
### commitOptions.txt (optional)
### `id-mapping.txt` (optional)
Many setups don't use the commit options, this allows for organizations to have a different set of commit options to be
available to users, if you are not using this feature do not provide this file. If you created
your [organization using the template](https://github.com/moderneinc/moderne-organizations) and you are using this
feature use your existing `commitOptions.txt`.
If you do not have a `commitOptions.txt`, follow
these [setup instructions to generate one](configure-agent-files-service.md#commitoptionstxt).
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).
## Updating your Agent
### `commitOptions.txt` (optional)
After you have identified and collected the required files, put them in a location where your Agent has access to said
files. Update the associated configurations with the associated file paths.
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:
<Tabs groupId="agent-type">
<TabItem value="oci-container" label="OCI Container">
**Variables:**
| Argument Name | Required | Default | Description |
|-----------------------------------------------------|----------|--------------------------------------------|----------------------------------------------------------------------------------------------------|
| `MODERNE_AGENT_ORGANIZATION_FILE_REPOSCSVPATH` | `true` | | File path to the CSV file which outlines your organization structure |
| `MODERNE_AGENT_ORGANIZATION_FILE_COMMITOPTIONSPATH` | `false` | All options available. | File path a text file which sets commit options for specific repositories |
| `MODERNE_AGENT_ORGANIZATION_FILE_IDMAPPINGPATH` | `false` | Organization use provided ID as their name | File path to a text which overrides any organization name to a different name then the provided ID |
| `MODERNE_AGENT_ORGANIZATION_FILE_DEVCENTERPATH` | `false` | A default Devcenter is provided | File path to a JSON file which outlines the DevCenter for specific organizations |
| 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
```
</TabItem>
@@ -70,17 +69,28 @@ files. Update the associated configurations with the associated file paths.
**Arguments:**
| Argument Name | Required | Default | Description |
|-------------------------------------------------------|----------|--------------------------------------------|-----------------------------------------------------------------------------------------------------|
| `--moderne.agent.organization.file.reposCsvPath` | `true` | | File path to the CSV file which outlines your organization structure |
| `--moderne.agent.organization.file.commitOptionsPath` | `false` | All options available. | File path a text file which sets commit options for specific repositories |
| `--moderne.agent.organization.file.idMappingPath` | `false` | Organization use provided ID as their name | File path to a text which overrides any organizations name to a different name than the provided ID |
| `--moderne.agent.organization.file.devCenterPath` | `false` | A default Devcenter is provided | File path to a JSON file which outlines the DevCenter for specific organizations |
| 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
```
</TabItem>
</Tabs>
Make sure that the following configurations are not provided
## 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:
<Tabs groupId="agent-type">
<TabItem value="oci-container" label="OCI Container">

View File

@@ -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). If you are not using an organization service your agent must be [configured to return a devCenter.json](./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 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 set up to return the `devCenter.json`. 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.

View File

@@ -1,37 +1,41 @@
---
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?
This can be done by either providing the required files to the Agent or by setting up an organization service.
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.
While both options offer you the ability to control an organizational structure, there are advantages/disadvantages to each.
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.
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 on the Agent
## Providing the files to the agent (recommended)
When providing files to the Agent you will need to:
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-file-service.md)
2. Determine which files your setup requires and generate the files
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
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
In order to dynamically control the organizational structure in Moderne, 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)
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
@@ -50,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?

View File

@@ -284,7 +284,6 @@ const sidebars: SidebarsConfig = {
},
items: [
'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/agent-config',
'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-agent-files-service',
'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-an-agent-with-azure-devops-services',
'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-bitbucket-to-agent',
'administrator-documentation/moderne-platform/how-to-guides/agent-configuration/configure-bitbucket-cloud-to-agent',
@@ -294,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',