Skip to main content

Proof of value (POV) prerequisites

Before starting the Moderne SaaS proof of value process, your team will need to:

  • Prepare two environments
  • Set up source control and artifact repository access
  • Open a small number of network paths

This page covers everything you need to do so nothing is missed on day one.

Checklist​

#RequirementDetails
1Compute for mass ingest (4 CPU and 16 GB RAM per shard recommended)Builds your repositories and publishes LST artifacts
2VM for the Moderne Connector (2 CPU, 8 GB RAM, 10 GB storage)Connects your environment to the Moderne SaaS tenant
3SCM service account with read access to all in-scope repositoriesUsed by mass ingest to clone and build repositories
4SCM OAuth application (GitHub App, GitLab OAuth, etc.)Allows users to view code and commit changes through Moderne
5Dedicated LST artifact repository with read/write accessNew Maven 2 repo (Artifactory/Nexus) or dedicated S3 bucket
6Repository list (repos.csv)Generated with our repository fetcher scripts
7Network egress from the Connector to https://api.TENANT.moderne.ioOutbound HTTPS required; mass ingest may also need outbound access to cloud SCMs

Environments​

You will need two separate environments provisioned and ready:

Mass ingest​

The mass ingest environment builds all of your repositories and creates the LST artifacts that recipes run against. It runs as a container. You can host that container on a VM or in a Kubernetes cluster. When using a self-hosted SCM, it operates entirely within your network. When using a cloud SCM (github.com, gitlab.com, etc.), it requires outbound HTTPS to that service.

ResourceMinimumRecommended
CPU2 cores4 cores
Memory16 GB16 GB
Disk10 GB freeSized to your largest repository (the example Kubernetes Job requests 150 GB)

The minimums are what mod doctor checks before you start. The check fails on fewer than 2 CPUs and warns when memory or free disk is below the other two. The recommended figures are the size of the machine that the example Kubernetes Job runs each shard on.

Only one repository is stored on disk at a time. This is because each container builds one repository at a time and then deletes it once its LST is published.

To finish a large repository list sooner, you can run several containers in parallel. You will need to choose the number of shards you want, and the CLI will then assign the repositories to them automatically.

The mass ingest guide covers sizing and sharding, and the mass ingest example repository has a Docker script and a Kubernetes Job that run the shards for you.

If you have a standard base image that includes your existing certificates or other configuration, we can build on top of that. If you don't, we'll build from standard open-source base images and configure it with any certificates, credentials, and build tool settings during the first few days of the engagement.

Moderne Connector​

The Moderne Connector is responsible for communicating between your environment and your Moderne SaaS tenant. It runs as an OCI container (Docker/Podman) or a Spring Boot executable JAR.

ResourceMinimum
CPU2 cores
Memory8 GB
Storage10 GB (persistent or local)

The Connector configuration guide covers detailed configuration options and deployment instructions.

Source control access​

Both environments need access to your source control management system (SCM), but for different purposes:

  • Mass ingest needs a service account with read access to all in-scope repositories. This is used to clone repositories and build LSTs. Credentials are mounted at runtime and never baked into images. The mass ingest source control credentials documentation has setup details.

  • The Moderne Connector needs an OAuth application configured in your SCM. This enables users to authenticate through the Moderne Platform to view code and commit changes back to your repositories. You will need to set up an OAuth app with a callback URL of https://TENANT.moderne.io.

SCM-specific configuration guides:

Preparing your repository list​

You will need a repos.csv file that lists the repositories to ingest. The more repositories you include, the more value you will see from the POV — Moderne's strength is working across repositories at scale. We recommend including as many repositories as a single mass ingest container can build in a day.

The easiest way to generate this file is with our repository fetcher scripts, which are available for GitHub, GitLab, Bitbucket (Data Center and Cloud), and Azure DevOps. These scripts query your SCM's API and produce a ready-to-use repos.csv file.

Artifact repository​

You need a dedicated location for storing and retrieving LST artifacts. Mass ingest needs write access to publish LST artifacts, and the Moderne Connector needs read access to index and retrieve them. Choose one of the following options:

Option 1: Maven-formatted repository (Artifactory or Nexus)​

Create a new Maven 2 type repository dedicated to LST artifacts. We strongly recommend keeping LSTs in their own repository rather than mixing them into an existing one — this makes indexing, cleanup, and troubleshooting much easier.

  • For Artifactory, the Connector uses Artifactory Query Language (AQL) for near real-time artifact discovery.
  • For Nexus 3 or other Maven repositories, you must enable Maven Indexer publishing on the LST repository so the Connector can discover new artifacts. The repository must also have its layout policy set to Permissive — mass ingest uploads build logs alongside LSTs using paths that do not follow Maven coordinate structure, and Nexus will reject these with HTTP 400 if the layout policy is Strict. The Maven repository configuration guide has full setup instructions.

Option 2: Amazon S3 (or S3-compatible storage)​

Create a dedicated S3 bucket for LST artifacts. The mass ingest pipeline publishes LSTs into this bucket and also writes a repos-lock.csv that the Connector reads to discover your repositories and their LST locations. The S3 organization source guide covers the Connector-side configuration — authentication options (IAM role, AWS profile, or access keys) and the S3 URI for the CSV object.

The Connector also needs read access to any artifact repositories that contain dependencies for the projects you will be running recipes against.

Network requirements​

ComponentDestinationDirectionRequired
Mass ingestYour SCM (e.g., GitHub Enterprise)Internal or outbound HTTPSYes
Mass ingestYour artifact repositoryInternal onlyYes
Connectorhttps://api.TENANT.moderne.ioOutbound HTTPSYes
ConnectorYour SCMInternal or outbound HTTPSYes
ConnectorYour artifact repositoryInternalYes
Developer machineshttps://TENANT.moderne.ioOutbound HTTPSYes
Developer machineshttps://login.TENANT.moderne.ioOutbound HTTPSYes
Developer machineshttps://api.TENANT.moderne.ioOutbound HTTPSYes

Mass ingest requires egress access to all SCMs that live outside your network (if any), but otherwise requires no ingress or egress access.

The Moderne Connector requires outbound HTTPS to your Moderne tenant's API at https://api.TENANT.moderne.io. If your repositories are hosted on a cloud SCM, the Connector also requires outbound HTTPS to that service. Moderne never initiates inbound connections to the Connector — the Connector establishes the connection using the RSocket protocol over HTTPS.

If your environment requires an HTTP proxy for outbound traffic, the Connector supports proxy configuration.

What Moderne provides​

During the POV process, Moderne will provide:

  • A dedicated SaaS tenant provisioned in your chosen cloud provider and region (takes approximately 1 hour)
  • A Connector token for authenticating the Connector with the Moderne platform
  • Guidance on generating the symmetric encryption key (AES-256) used to encrypt data in transit
  • Technical support throughout the setup and evaluation process

Next steps​

Once these prerequisites are in place, proceed to the proof of value process to start running recipes against your code.