Configuration Details

The Ed-Fi ODS / API is configurable in a number of ways. Since the source code is available to licensees, one could argue that everything is configurable. But, what we’re discussing in this section are things like settings and options that do not require a change to the compiled code.

Key configuration points include:

  • OAuth endpoints
  • OAuth key retrieval site location
  • Instance type information (e.g., Sandbox, Shared Instance)
  • Bulk upload directory
  • Key retrieval maximum tries
  • Token timeout value

Detail about the configurations can be found in the tables below.

Required Configuration Settings

Some configuration must be done for every ODS / API platform instance. Examples of required configurations include database connection strings, SMTP server locations, and similar.

To make it easier for developers to install and run the Ed-Fi ODS / API, the default download from source control is pre-configured with values appropriate for a developer or single-server test instance of the system. 

ApplicationLocationSetting NameValueDescription
EdFi.Ods.Admin.WebWeb.configOAuthUrl

Example: http://site-address:port/oauth

Points to the root of the authorization API in the Ed-Fi ODS website.
EdFi.Ods.SecurityConfiguration
.Administration.Web
Web.configKeyRetrievalSiteExample: http://site-address:port/Points to the Key Retrieval tool application. The link in the email body uses this address as the root address of the Key Retrieval Tool site.
EdFi.Ods.WebApiWeb.configowin:appStartupSandbox, SharedInstance, etc.The component settings for the API. See the Developers' Guide for more information on this setting.
EdFi.Ods.WebApiWeb.configBulkOperationWorkingFolderExample: c:\tempA temporary storage area used to assemble bulk upload data.
EdFi.Ods.WebApiWeb.configDescriptorNamespacePrefixExample: http://www.ed-fi.orgThe default namespace for creating and finding descriptors if none are supplied. More information on descriptors and descriptor namespaces can be found at Ed-Fi Descriptors
EdFi.Ods.SwaggerUIWeb.configswagger.webApiMetadataUrlExample: http://site-address:port/metadata/{section}/api-docsThe location of the Swagger metadata in the Ed-Fi ODS / API

A deployment to a staging or production instance is usually more involved, and requires additional configuration. Required configurations for a production instance can be found in the Deployment section of this documentation.

Optional Configuration Settings

Although this list of settings is not exhaustive, other important and useful optional configuration values include:

ApplicationLocationSetting NameValueDescription
Key Retrieval Web AppWeb.configMaxChallengeRetriesDefault Value: 3This is the number of tries a vendor is allowed to enter the correct activation code to retrieve the key and secret.
EdFi.Ods.SwaggerUIWeb.configswagger.prepopulatedKeyExample: populatedTemplateOptionally provides the value to prefill in the "key" field of auth.
EdFi.Ods.SwaggerUIWeb.configswagger.prepopulatedSecretExample: populatedTemplateSecretOptionally provides the value to prefill in the "secret" field of auth.
EdFi.Ods.Admin.WebWeb.config<initialization>

Example:

<initialization enabled="true">
    <users>
      <add name="Test Admin" email="test@ed-fi.org" password="***REMOVED***" admin="true">
        <sandboxes>
          <sandbox name="Populated Demonstration Sandbox" key="populatedSandbox"
           secret="populatedSandboxSecret" type="Sample" refresh="true" />
          <sandbox name="Minimal Demonstration Sandbox" key="minimalSandbox" 
           secret="minimalSandboxSecret" type="Minimal" refresh="true" />
       </sandboxes>
     </add>
   </users>
</initialization>



Custom configuration section for defining automatically created user accounts and sandboxes. Also configures automatic refreshes of sandboxes to a clean state. Each user entry will be created with the given email/password, and the sandboxes defined underneath it will also be created for the type and key/secret values.
EdFi.Ods.WebApiWeb.configQueueAutoCreateExample: 1Whether or not a message queue should be created if it is not found. For Azure or Active Directory queues, this should be 0.
EdFi.Ods.WebApiWeb.configCommitUploadCommandMessageEndPointExample: localhostThe server hosting the message queues.
EdFi.Ods.WebApiWeb.configBearerTokenTimeoutMinutesExample: 30The amount of time that an inactive token remains valid.