Class RegistryConfig.ConfigModule

  • Enclosing class:
    RegistryConfig

    @Module
    public static final class RegistryConfig.ConfigModule
    extends java.lang.Object
    Dagger module for providing configuration settings.
    • Constructor Detail

      • ConfigModule

        public ConfigModule()
    • Method Detail

      • provideLogoFilename

        @Provides
        @Config("logoFilename")
        public static java.lang.String provideLogoFilename​(RegistryConfigSettings config)
        The filename of the logo to be displayed in the header of the registrar console.
        See Also:
        ConsoleUiAction
      • provideProductName

        @Provides
        @Config("productName")
        public static java.lang.String provideProductName​(RegistryConfigSettings config)
        The product name of this specific registry. Used throughout the registrar console.
        See Also:
        ConsoleUiAction
      • provideIntegrationEmail

        @Provides
        @Config("integrationEmail")
        public static java.lang.String provideIntegrationEmail​(RegistryConfigSettings config)
        The e-mail address for questions about integrating with the registry. Used in the "contact-us" section of the registrar console.
        See Also:
        ConsoleUiAction
      • provideSupportEmail

        @Provides
        @Config("supportEmail")
        public static java.lang.String provideSupportEmail​(RegistryConfigSettings config)
        The e-mail address for general support. Used in the "contact-us" section of the registrar console.
        See Also:
        ConsoleUiAction
      • provideAnnouncementsEmail

        @Provides
        @Config("announcementsEmail")
        public static java.lang.String provideAnnouncementsEmail​(RegistryConfigSettings config)
        The "From" e-mail address for announcements. Used in the "contact-us" section of the registrar console.
        See Also:
        ConsoleUiAction
      • provideSupportPhoneNumber

        @Provides
        @Config("supportPhoneNumber")
        public static java.lang.String provideSupportPhoneNumber​(RegistryConfigSettings config)
        The contact phone number. Used in the "contact-us" section of the registrar console.
        See Also:
        ConsoleUiAction
      • provideTechnicalDocsUrl

        @Provides
        @Config("technicalDocsUrl")
        public static java.lang.String provideTechnicalDocsUrl​(RegistryConfigSettings config)
        The URL for technical support docs. Used in the "contact-us" section of the registrar console.
        See Also:
        ConsoleUiAction
      • provideZoneFilesBucket

        @Provides
        @Config("zoneFilesBucket")
        public static java.lang.String provideZoneFilesBucket​(@Config("projectId")
                                                              java.lang.String projectId)
        Returns the Google Cloud Storage bucket for storing zone files.
        See Also:
        GenerateZoneFilesAction
      • provideDomainListsGcsBucket

        @Provides
        @Config("domainListsGcsBucket")
        public static java.lang.String provideDomainListsGcsBucket​(@Config("projectId")
                                                                   java.lang.String projectId)
        The GCS bucket for exporting domain lists.
        See Also:
        ExportDomainListsAction
      • provideBrdaBucket

        @Provides
        @Config("brdaBucket")
        public static java.lang.String provideBrdaBucket​(@Config("projectId")
                                                         java.lang.String projectId)
        Returns the Google Cloud Storage bucket for staging BRDA escrow deposits.
        See Also:
        PendingDepositChecker
      • provideBrdaDayOfWeek

        @Provides
        @Config("brdaDayOfWeek")
        public static int provideBrdaDayOfWeek()
        See Also:
        BrdaCopyAction
      • provideBrdaInterval

        @Provides
        @Config("brdaInterval")
        public static org.joda.time.Duration provideBrdaInterval()
        Amount of time between BRDA deposits.
        See Also:
        PendingDepositChecker
      • provideDnsTldUpdateBatchSize

        @Provides
        @Config("dnsTldUpdateBatchSize")
        public static int provideDnsTldUpdateBatchSize()
        The maximum number of domain and host updates to batch together to send to PublishDnsUpdatesAction, to avoid exceeding AppEngine's limits.
        See Also:
        ReadDnsQueueAction
      • providePublishDnsUpdatesLockDuration

        @Provides
        @Config("publishDnsUpdatesLockDuration")
        public static org.joda.time.Duration providePublishDnsUpdatesLockDuration()
        The maximum time we allow publishDnsUpdates to run.

        This is the maximum lock duration for publishing the DNS updates, meaning it should allow the various DnsWriters to publish and commit an entire batch (with a maximum number of items set by provideDnsTldUpdateBatchSize).

        Any update that takes longer than this timeout will be killed and retried from scratch. Hence, a timeout that's too short can result in batches that retry over and over again, failing forever.

        If there are lock contention issues, they should be solved by changing the batch sizes or the cron job rate, NOT by making this value smaller.

        See Also:
        PublishDnsUpdatesAction
      • provideReadDnsQueueRuntime

        @Provides
        @Config("readDnsQueueActionRuntime")
        public static org.joda.time.Duration provideReadDnsQueueRuntime()
        The requested maximum duration for ReadDnsQueueAction.

        ReadDnsQueueAction reads update tasks from the dns-pull queue. It will continue reading tasks until either the queue is empty, or this duration has passed.

        This time is the maximum duration between the first and last attempt to lease tasks from the dns-pull queue. The actual running time might be slightly longer, as we process the tasks.

        This value should be less than the cron-job repeat rate for ReadDnsQueueAction, to make sure we don't have multiple ReadDnsActions leasing tasks simultaneously.

        See Also:
        ReadDnsQueueAction
      • provideDnsDefaultATtl

        @Provides
        @Config("dnsDefaultATtl")
        public static org.joda.time.Duration provideDnsDefaultATtl()
        Returns the default time to live for DNS A and AAAA records.
        See Also:
        CloudDnsWriter
      • provideDnsDefaultNsTtl

        @Provides
        @Config("dnsDefaultNsTtl")
        public static org.joda.time.Duration provideDnsDefaultNsTtl()
        Returns the default time to live for DNS NS records.
        See Also:
        CloudDnsWriter
      • provideDnsDefaultDsTtl

        @Provides
        @Config("dnsDefaultDsTtl")
        public static org.joda.time.Duration provideDnsDefaultDsTtl()
        Returns the default time to live for DNS DS records.
        See Also:
        CloudDnsWriter
      • provideCloudSqlJdbcUrl

        @Provides
        @Config("cloudSqlJdbcUrl")
        public static java.lang.String provideCloudSqlJdbcUrl​(RegistryConfigSettings config)
      • provideCloudSqlInstanceConnectionName

        @Provides
        @Config("cloudSqlInstanceConnectionName")
        public static java.lang.String provideCloudSqlInstanceConnectionName​(RegistryConfigSettings config)
      • provideCloudSqlReplicaInstanceConnectionName

        @Provides
        @Config("cloudSqlReplicaInstanceConnectionName")
        public static java.util.Optional<java.lang.String> provideCloudSqlReplicaInstanceConnectionName​(RegistryConfigSettings config)
      • provideCloudSqlDbInstance

        @Provides
        @Config("cloudSqlDbInstanceName")
        public static java.lang.String provideCloudSqlDbInstance​(RegistryConfigSettings config)
      • getCloudDnsRootUrl

        @Provides
        @Config("cloudDnsRootUrl")
        public static java.util.Optional<java.lang.String> getCloudDnsRootUrl​(RegistryConfigSettings config)
      • getCloudDnsServicePath

        @Provides
        @Config("cloudDnsServicePath")
        public static java.util.Optional<java.lang.String> getCloudDnsServicePath​(RegistryConfigSettings config)
      • provideGSuiteAdminAccountEmailAddress

        @Provides
        @Config("gSuiteAdminAccountEmailAddress")
        public static java.lang.String provideGSuiteAdminAccountEmailAddress​(RegistryConfigSettings config)
        Returns the email address of the admin account on the G Suite app used to perform administrative actions.
        See Also:
        DirectoryGroupsConnection
      • provideGSuiteSupportGroupEmailAddress

        @Provides
        @Config("gSuiteSupportGroupEmailAddress")
        public static java.util.Optional<java.lang.String> provideGSuiteSupportGroupEmailAddress​(RegistryConfigSettings config)
        Returns the email address of the group containing emails of support accounts.

        These accounts will have "ADMIN" access to the registrar console.

        See Also:
        DirectoryGroupsConnection
      • provideRegistrarChangesNotificationEmailAddresses

        @Provides
        @Config("registrarChangesNotificationEmailAddresses")
        public static com.google.common.collect.ImmutableList<java.lang.String> provideRegistrarChangesNotificationEmailAddresses​(RegistryConfigSettings config)
        Returns the email address(es) that notifications of registrar and/or registrar contact updates should be sent to, or the empty list if updates should not be sent.
        See Also:
        RegistrarSettingsAction
      • provideTmchCrlUrl

        @Provides
        @Config("tmchCrlUrl")
        public static java.net.URL provideTmchCrlUrl​(RegistryConfigSettings config)
        ICANN TMCH Certificate Revocation List URL.

        This file needs to be downloaded at least once a day and verified to make sure it was signed by icann-tmch.crt or icann-tmch-pilot.crt depending on TMCH CA mode.

        See Also:
        TmchCrlAction, TMCH RFC
      • provideTmchMarksdbUrl

        @Provides
        @Config("tmchMarksdbUrl")
        public static java.lang.String provideTmchMarksdbUrl​(RegistryConfigSettings config)
        URL prefix for communicating with MarksDB ry interface.

        This URL is used for DNL, SMDRL, and LORDN.

        See Also:
        Marksdb, NordnUploadAction
      • provideGSuiteOutgoingEmailAddress

        @Provides
        @Config("gSuiteOutgoingEmailAddress")
        public static javax.mail.internet.InternetAddress provideGSuiteOutgoingEmailAddress​(RegistryConfigSettings config)
        The email address that outgoing emails from the app are sent from.
        See Also:
        SendEmailUtils
      • provideGSuiteOutgoingEmailDisplayName

        @Provides
        @Config("gSuiteOutgoingEmailDisplayName")
        public static java.lang.String provideGSuiteOutgoingEmailDisplayName​(RegistryConfigSettings config)
        The display name that is used on outgoing emails sent by Nomulus.
        See Also:
        SendEmailUtils
      • provideRequireSslCertificates

        @Provides
        @Config("requireSslCertificates")
        public static boolean provideRequireSslCertificates​(RegistryConfigSettings config)
        Returns whether an SSL certificate hash is required to log in via EPP and run flows.
        See Also:
        TlsCredentials
      • provideHighPerformanceMachineType

        @Provides
        @Config("highPerformanceMachineType")
        public static java.lang.String provideHighPerformanceMachineType​(RegistryConfigSettings config)
        Returns the GCE machine type that a CPU-demanding pipeline should use.
        See Also:
        RdePipeline
      • provideInitialWorkerCount

        @Provides
        @Config("initialWorkerCount")
        public static int provideInitialWorkerCount​(RegistryConfigSettings config)
        Returns initial number of workers used for a Beam pipeline. Autoscaling can still in effect.
        See Also:
        Horizontal Autoscaling
      • provideBeamStagingBucketUrl

        @Provides
        @Config("beamStagingBucketUrl")
        public static java.lang.String provideBeamStagingBucketUrl​(RegistryConfigSettings config)
        Returns the GCS bucket URL with all staged BEAM flex templates.
      • provideReportingBucket

        @Provides
        @Config("reportingBucket")
        public static java.lang.String provideReportingBucket​(@Config("projectId")
                                                              java.lang.String projectId)
        Returns the Google Cloud Storage bucket for Spec11 and ICANN transaction and activity reports to be uploaded.
        See Also:
        IcannReportingUploadAction
      • provideReportingBucketUrl

        @Provides
        @Config("reportingBucketUrl")
        public static java.lang.String provideReportingBucketUrl​(@Config("reportingBucket")
                                                                 java.lang.String reportingBucket)
        Returns the Google Cloud Storage bucket URL for Spec11 and ICANN transaction and activity reports to be uploaded.
        See Also:
        IcannReportingUploadAction, PublishSpec11ReportAction
      • provideIcannTransactionsReportingUploadUrl

        @Provides
        @Config("icannTransactionsReportingUploadUrl")
        public static java.lang.String provideIcannTransactionsReportingUploadUrl​(RegistryConfigSettings config)
        Returns the URL we send HTTP PUT requests for ICANN monthly transactions reports.
        See Also:
        IcannHttpReporter
      • provideIcannActivityReportingUploadUrl

        @Provides
        @Config("icannActivityReportingUploadUrl")
        public static java.lang.String provideIcannActivityReportingUploadUrl​(RegistryConfigSettings config)
        Returns the URL we send HTTP PUT requests for ICANN monthly activity reports.
        See Also:
        IcannHttpReporter
      • provideBillingBucket

        @Provides
        @Config("billingBucket")
        public static java.lang.String provideBillingBucket​(@Config("projectId")
                                                            java.lang.String projectId)
        Returns name of the GCS bucket we store invoices and detail reports in.
        See Also:
        CopyDetailReportsAction, BillingEmailUtils
      • provideBillingBucketUrl

        @Provides
        @Config("billingBucketUrl")
        public static java.lang.String provideBillingBucketUrl​(@Config("billingBucket")
                                                               java.lang.String billingBucket)
        Returns the URL of the GCS bucket we store invoices and detail reports in.
        See Also:
        InvoicingPipeline
      • provideDefaultShouldPublishInvoices

        @Provides
        @Config("defaultShouldPublishInvoices")
        public static boolean provideDefaultShouldPublishInvoices()
        Returns whether or not we should publish invoices to partners automatically by default.
        See Also:
        BillingModule
      • provideInvoiceEmailRecipients

        @Provides
        @Config("invoiceEmailRecipients")
        public static com.google.common.collect.ImmutableList<javax.mail.internet.InternetAddress> provideInvoiceEmailRecipients​(RegistryConfigSettings config)
        Returns the list of addresses that receive monthly invoicing emails.
        See Also:
        BillingEmailUtils
      • provideRdeBucket

        @Provides
        @Config("rdeBucket")
        public static java.lang.String provideRdeBucket​(@Config("projectId")
                                                        java.lang.String projectId)
        Returns the Google Cloud Storage bucket for staging escrow deposits pending upload.
        See Also:
        RdeStagingAction
      • provideRdeReportLockTimeout

        @Provides
        @Config("rdeReportLockTimeout")
        public static org.joda.time.Duration provideRdeReportLockTimeout()
        Maximum amount of time for sending a small XML file to ICANN via HTTP, before killing.
        See Also:
        RdeReportAction
      • provideRdeReportUrlPrefix

        @Provides
        @Config("rdeReportUrlPrefix")
        public static java.lang.String provideRdeReportUrlPrefix​(RegistryConfigSettings config)
        URL of ICANN's HTTPS server to which the RDE report should be PUT.

        You must append "/TLD/ID" to this URL.

        See Also:
        RdeReportAction
      • provideRdeUploadLockTimeout

        @Provides
        @Config("rdeUploadLockTimeout")
        public static org.joda.time.Duration provideRdeUploadLockTimeout()
        Maximum amount of time it should ever take to upload an escrow deposit, before killing.
        See Also:
        RdeUploadAction
      • provideRdeUploadSftpCooldown

        @Provides
        @Config("rdeUploadSftpCooldown")
        public static org.joda.time.Duration provideRdeUploadSftpCooldown()
        Minimum amount of time to wait between consecutive SFTP uploads on a single TLD.

        This value was communicated to us by the escrow provider.

        See Also:
        RdeUploadAction
      • provideRdeUploadUrl

        @Provides
        @Config("rdeUploadUrl")
        public static java.net.URI provideRdeUploadUrl​(RegistryConfigSettings config)
        Returns SFTP URL containing a username, hostname, port (optional), and directory (optional) to which cloud storage files are uploaded. The password should not be included, as it's better to use public key authentication.
        See Also:
        RdeUploadAction
      • provideRegistrarConsoleEnabled

        @Provides
        @Config("registrarConsoleEnabled")
        public static boolean provideRegistrarConsoleEnabled()
        Whether or not the registrar console is enabled.
        See Also:
        ConsoleUiAction
      • provideSheetLockTimeout

        @Provides
        @Config("sheetLockTimeout")
        public static org.joda.time.Duration provideSheetLockTimeout()
        Maximum amount of time for syncing a spreadsheet, before killing.
        See Also:
        SyncRegistrarsSheetAction
      • provideSheetRegistrarId

        @Provides
        @Config("sheetRegistrarId")
        public static java.util.Optional<java.lang.String> provideSheetRegistrarId​(RegistryConfigSettings config)
        Returns ID of Google Spreadsheet to which Registrar entities should be synced.

        This ID, as you'd expect, comes from the URL of the spreadsheet.

        See Also:
        SyncRegistrarsSheetAction
      • provideAlertRecipientEmailAddress

        @Provides
        @Config("alertRecipientEmailAddress")
        public static javax.mail.internet.InternetAddress provideAlertRecipientEmailAddress​(RegistryConfigSettings config)
        Returns the email address we send various alert e-mails to.

        This allows us to easily verify the success or failure of periodic tasks by passively checking e-mail.

        See Also:
        BillingEmailUtils, Spec11EmailUtils
      • provideSpec11OutgoingEmailAddress

        @Provides
        @Config("spec11OutgoingEmailAddress")
        public static javax.mail.internet.InternetAddress provideSpec11OutgoingEmailAddress​(RegistryConfigSettings config)
        Returns the email address to which spec 11 email should be replied.
        See Also:
        Spec11EmailUtils
      • provideSpec11BccEmailAddresses

        @Provides
        @Config("spec11BccEmailAddresses")
        public static com.google.common.collect.ImmutableList<javax.mail.internet.InternetAddress> provideSpec11BccEmailAddresses​(RegistryConfigSettings config)
        Returns the email addresses to which we will BCC Spec11 emails.
        See Also:
        Spec11EmailUtils
      • provideRegistryName

        @Provides
        @Config("registryName")
        public static java.lang.String provideRegistryName​(RegistryConfigSettings config)
        Returns the name of the registry, for use in spec 11 emails.
        See Also:
        Spec11EmailUtils
      • provideSpec11WebResources

        @Provides
        @Config("spec11WebResources")
        public static com.google.common.collect.ImmutableList<java.lang.String> provideSpec11WebResources​(RegistryConfigSettings config)
        Returns a list of resources we send to registrars when informing them of spec 11 threats.
        See Also:
        Spec11EmailUtils
      • provideSshTimeout

        @Provides
        @Config("sshTimeout")
        public static org.joda.time.Duration provideSshTimeout()
        Returns SSH client connection and read timeout.
        See Also:
        RdeUploadAction
      • provideTransactionCooldown

        @Provides
        @Config("transactionCooldown")
        public static org.joda.time.Duration provideTransactionCooldown()
        Duration after watermark where we shouldn't deposit, because transactions might be pending.
        See Also:
        RdeStagingAction
      • provideTransientFailureRetries

        @Provides
        @Named("transientFailureRetries")
        public static int provideTransientFailureRetries​(RegistryConfigSettings config)
        Number of times to retry a GAE operation when TransientFailureException is thrown.

        The number of milliseconds it'll sleep before giving up is (2^n - 2) * 100.

        Note that this uses @Named instead of @Config so that it can be used from the low-level util package, which cannot have a dependency on the config package.

        See Also:
        CloudTasksUtils
      • provideWhoisHttpExpires

        @Provides
        @Config("whoisHttpExpires")
        public static org.joda.time.Duration provideWhoisHttpExpires()
        Amount of time public HTTP proxies are permitted to cache our WHOIS responses.
        See Also:
        WhoisHttpAction
      • provideRdapResultSetMaxSize

        @Provides
        @Config("rdapResultSetMaxSize")
        public static int provideRdapResultSetMaxSize()
        Maximum number of results to return for an RDAP search query
        See Also:
        RdapActionBase
      • provideWhoisRedactedEmailText

        @Provides
        @Config("whoisRedactedEmailText")
        public static java.lang.String provideWhoisRedactedEmailText​(RegistryConfigSettings config)
        Redaction text for email address in WHOIS
        See Also:
        WhoisResponse
      • provideWhoisDisclaimer

        @Provides
        @Config("whoisDisclaimer")
        public static java.lang.String provideWhoisDisclaimer​(RegistryConfigSettings config)
        Disclaimer displayed at the end of WHOIS query results.
        See Also:
        WhoisResponse
      • provideStackdriverMaxQps

        @Provides
        @Config("stackdriverMaxQps")
        public static int provideStackdriverMaxQps​(RegistryConfigSettings config)
        Maximum QPS for the Google Cloud Monitoring V3 (aka Stackdriver) API. The QPS limit can be adjusted by contacting Cloud Support.
        See Also:
        StackdriverWriter
      • provideStackdriverMaxPointsPerRequest

        @Provides
        @Config("stackdriverMaxPointsPerRequest")
        public static int provideStackdriverMaxPointsPerRequest​(RegistryConfigSettings config)
        Maximum number of points that can be sent to Stackdriver in a single TimeSeries.Create API call.
        See Also:
        StackdriverWriter
      • provideMetricsWriteInterval

        @Provides
        @Config("metricsWriteInterval")
        public static org.joda.time.Duration provideMetricsWriteInterval​(RegistryConfigSettings config)
        The reporting interval for Metric instances to be sent to a MetricWriter.
        See Also:
        MetricReporter
      • provideContactAutomaticTransferLength

        @Provides
        @Config("contactAutomaticTransferLength")
        public static org.joda.time.Duration provideContactAutomaticTransferLength​(RegistryConfigSettings config)
        The global automatic transfer length for contacts. After this amount of time has elapsed, the transfer is automatically approved.
        See Also:
        ContactTransferRequestFlow
      • provideMaxChecks

        @Provides
        @Config("maxChecks")
        public static int provideMaxChecks()
        Returns the maximum number of entities that can be checked at one time in an EPP check flow.
      • provideAsyncDeleteDelay

        @Provides
        @Config("asyncDeleteDelay")
        public static org.joda.time.Duration provideAsyncDeleteDelay​(RegistryConfigSettings config)
        Returns the delay before executing async delete flow mapreduces.

        This delay should be sufficiently longer than a transaction, to solve the following problem:

        • a domain mutation flow starts a transaction
        • the domain flow non-transactionally reads a resource and sees that it's not in PENDING_DELETE
        • the domain flow creates a new reference to this resource
        • a contact/host delete flow runs and marks the resource PENDING_DELETE and commits
        • the domain flow commits

        Although we try not to add references to a PENDING_DELETE resource, strictly speaking that is ok as long as the mapreduce eventually sees the new reference (and therefore asynchronously fails the delete). Without this delay, the mapreduce might have started before the domain flow committed, and could potentially miss the reference.

        If you are using EPP resource caching (eppResourceCachingEnabled in YAML), then this duration should also be longer than that cache duration (eppResourceCachingSeconds).

        See Also:
        RegistryConfigSettings.Caching, AsyncTaskEnqueuer
      • provideGreetingServerId

        @Provides
        @Config("greetingServerId")
        public static java.lang.String provideGreetingServerId​(RegistryConfigSettings config)
        The server ID used in the 'svID' element of an EPP 'greeting'.
        See Also:
        RFC 7530
      • provideCloudKmsKeyRing

        @Provides
        @Config("cloudKmsKeyRing")
        public static java.lang.String provideCloudKmsKeyRing​(RegistryConfigSettings config)
        The name to use for the Cloud KMS KeyRing containing encryption keys for Nomulus secrets.
        See Also:
        projects.locations.keyRings
      • provideCloudKmsProjectId

        @Provides
        @Config("cloudKmsProjectId")
        public static java.lang.String provideCloudKmsProjectId​(RegistryConfigSettings config)
      • provideCustomLogicFactoryClass

        @Provides
        @Config("customLogicFactoryClass")
        public static java.lang.String provideCustomLogicFactoryClass​(RegistryConfigSettings config)
      • provideWhoisCommandFactoryClass

        @Provides
        @Config("whoisCommandFactoryClass")
        public static java.lang.String provideWhoisCommandFactoryClass​(RegistryConfigSettings config)
      • provideAllocationTokenCustomLogicClass

        @Provides
        @Config("allocationTokenCustomLogicClass")
        public static java.lang.String provideAllocationTokenCustomLogicClass​(RegistryConfigSettings config)
      • dnsCountQueryCoordinatorClass

        @Provides
        @Config("dnsCountQueryCoordinatorClass")
        public static java.lang.String dnsCountQueryCoordinatorClass​(RegistryConfigSettings config)
      • providePremiumTermsExportDisclaimer

        @Provides
        @Config("premiumTermsExportDisclaimer")
        public static java.lang.String providePremiumTermsExportDisclaimer​(RegistryConfigSettings config)
        Returns the disclaimer text for the exported premium terms.
      • provideRegistryAdminClientId

        @Provides
        @Config("registryAdminClientId")
        public static java.lang.String provideRegistryAdminClientId​(RegistryConfigSettings config)
        Returns the ID of the registrar that admins are automatically logged in as if they aren't otherwise associated with one.
      • provideAvailableOauthScopes

        @Provides
        @Config("availableOauthScopes")
        public static com.google.common.collect.ImmutableSet<java.lang.String> provideAvailableOauthScopes​(RegistryConfigSettings config)
        Provides the OAuth scopes that authentication logic should detect on access tokens.

        This list should be a superset of the required OAuth scope set provided below. Note that ideally, this setting would not be required and all scopes on an access token would be detected automatically, but that is not the case due to the way OAuthService works.

        This is an independent setting from the required OAuth scopes (below) to support use cases where certain actions require some additional scope (e.g. access to a user's Google Drive) but that scope shouldn't be required for authentication alone; in that case the Drive scope would be specified only for this setting, allowing that action to check for its presence.

      • provideRequiredOauthScopes

        @Provides
        @Config("requiredOauthScopes")
        public static com.google.common.collect.ImmutableSet<java.lang.String> provideRequiredOauthScopes​(RegistryConfigSettings config)
        Provides the OAuth scopes that are required for authenticating successfully.

        This set contains the scopes which must be present to authenticate a user. It should be a subset of the scopes we request from the OAuth interface, provided above.

        If we feel the need, we could define additional fixed scopes, similar to the Java remote API, which requires at least one of:

        • https://www.googleapis.com/auth/appengine.apis
        • https://www.googleapis.com/auth/cloud-platform
      • provideAllowedOauthClientIds

        @Provides
        @Config("allowedOauthClientIds")
        public static com.google.common.collect.ImmutableSet<java.lang.String> provideAllowedOauthClientIds​(RegistryConfigSettings config)
        Provides the allowed OAuth client IDs (could be multibinding).
      • provideServiceAccountCredentialOauthScopes

        @Provides
        @Config("defaultCredentialOauthScopes")
        public static com.google.common.collect.ImmutableList<java.lang.String> provideServiceAccountCredentialOauthScopes​(RegistryConfigSettings config)
        Provides the OAuth scopes required for accessing Google APIs using the default credential.
      • provideDelegatedCredentialOauthScopes

        @Provides
        @Config("delegatedCredentialOauthScopes")
        public static com.google.common.collect.ImmutableList<java.lang.String> provideDelegatedCredentialOauthScopes​(RegistryConfigSettings config)
        Provides the OAuth scopes required for delegated admin access to G Suite domain.
      • provideLocalCredentialOauthScopes

        @Provides
        @Config("localCredentialOauthScopes")
        public static com.google.common.collect.ImmutableList<java.lang.String> provideLocalCredentialOauthScopes​(RegistryConfigSettings config)
        Provides the OAuth scopes required for credentials created locally for the nomulus tool.
      • provideToolsClientId

        @Provides
        @Config("toolsClientId")
        public static java.lang.String provideToolsClientId​(RegistryConfigSettings config)
        OAuth client ID used by the nomulus tool.
      • provideToolsClientSecret

        @Provides
        @Config("toolsClientSecret")
        public static java.lang.String provideToolsClientSecret​(RegistryConfigSettings config)
        OAuth client secret used by the nomulus tool.
      • provideRdapTos

        @Provides
        @Config("rdapTos")
        public static com.google.common.collect.ImmutableList<java.lang.String> provideRdapTos​(RegistryConfigSettings config)
      • provideRdapTosStaticUrl

        @Provides
        @Config("rdapTosStaticUrl")
        @Nullable
        public static java.lang.String provideRdapTosStaticUrl​(RegistryConfigSettings config)
        Link to static Web page with RDAP terms of service. Displayed in RDAP responses.
        See Also:
        RdapJsonFormatter
      • provideValidityDaysMap

        @Provides
        @Config("maxValidityDaysSchedule")
        public static com.google.common.collect.ImmutableSortedMap<org.joda.time.DateTime,​java.lang.Integer> provideValidityDaysMap​(RegistryConfigSettings config)
      • provideExpirationWarningDays

        @Provides
        @Config("expirationWarningDays")
        public static int provideExpirationWarningDays​(RegistryConfigSettings config)
      • provideExpirationWarningIntervalDays

        @Provides
        @Config("expirationWarningIntervalDays")
        public static int provideExpirationWarningIntervalDays​(RegistryConfigSettings config)
      • provideMinimumRsaKeyLength

        @Provides
        @Config("minimumRsaKeyLength")
        public static int provideMinimumRsaKeyLength​(RegistryConfigSettings config)
      • provideExpirationWarningEmailBodyText

        @Provides
        @Config("expirationWarningEmailBodyText")
        public static java.lang.String provideExpirationWarningEmailBodyText​(RegistryConfigSettings config)
      • provideExpirationWarningEmailSubjectText

        @Provides
        @Config("expirationWarningEmailSubjectText")
        public static java.lang.String provideExpirationWarningEmailSubjectText​(RegistryConfigSettings config)
      • provideDnsUpdateFailEmailSubjectText

        @Provides
        @Config("dnsUpdateFailEmailSubjectText")
        public static java.lang.String provideDnsUpdateFailEmailSubjectText​(RegistryConfigSettings config)
      • provideDnsUpdateFailEmailBodyText

        @Provides
        @Config("dnsUpdateFailEmailBodyText")
        public static java.lang.String provideDnsUpdateFailEmailBodyText​(RegistryConfigSettings config)
      • provideDnsUpdateFailRegistryName

        @Provides
        @Config("dnsUpdateFailRegistryName")
        public static java.lang.String provideDnsUpdateFailRegistryName​(RegistryConfigSettings config)
      • provideRegistrySupportEmail

        @Provides
        @Config("registrySupportEmail")
        public static javax.mail.internet.InternetAddress provideRegistrySupportEmail​(RegistryConfigSettings config)
      • provideRegistryCcEmail

        @Provides
        @Config("registryCcEmail")
        public static javax.mail.internet.InternetAddress provideRegistryCcEmail​(RegistryConfigSettings config)
      • provideAllowedEcdsaCurves

        @Provides
        @Config("allowedEcdsaCurves")
        public static com.google.common.collect.ImmutableSet<java.lang.String> provideAllowedEcdsaCurves​(RegistryConfigSettings config)
      • provideMinMonthsBeforeWipeOut

        @Provides
        @Config("minMonthsBeforeWipeOut")
        public static int provideMinMonthsBeforeWipeOut​(RegistryConfigSettings config)
      • provideWipeOutQueryBatchSize

        @Provides
        @Config("wipeOutQueryBatchSize")
        public static int provideWipeOutQueryBatchSize​(RegistryConfigSettings config)
      • provideHibernateJdbcBatchSize

        @Provides
        @Config("jdbcBatchSize")
        public static int provideHibernateJdbcBatchSize​(RegistryConfigSettings config)