public EnvironmentRegistry()

in sources/src/main/java/com/google/solutions/jitaccess/web/EnvironmentRegistry.java [44:86]


  public EnvironmentRegistry(
    @NotNull Collection<EnvironmentConfiguration> environments,
    @NotNull GroupMapping groupMapping,
    @NotNull CloudIdentityGroupsClient groupsClient,
    @NotNull Executor executor,
    @NotNull Options options,
    @NotNull Logger logger
  ) {
    //
    // Initialize provisioners for each environment.
    //
    this.environments = environments.stream()
      .map(cfg -> {
        //
        // Create a CRM client that uses this environment's credential
        // (as opposed to the application credential).
        //
        var crmClient = new ResourceManagerClient(
          cfg.resourceCredentials(),
          options.httpTransportOptions());

        var provisioner = new Provisioner(
          cfg.name(),
          groupMapping,
          groupsClient,
          crmClient,
          executor,
          logger);

        return (Environment) new Environment(
          cfg.name(),
          cfg.description(),
          provisioner,
          options.cacheDuration()
        ) {
          @Override
          public PolicyDocumentSource loadPolicy() {
            return cfg.loadPolicy();
          }
        };
      })
      .toList();
  }