Skip to content

Subdomain Names of Applications and APIs

  • Status: Proposed
  • Deciders: brishe,shasca,jonfal,scocla,emmjoh,andmil
  • Date: 2024-01-15

Context and Problem Statement

To effectively manage our expanding range of web and API applications, we need to implement dedicated subdomains. These subdomains must be distinct from any existing internal or external services, e.g., API. By utilizing these subdomains, we can clearly differentiate between web and API applications, as well as between various environments (e.g., development, testing, production) and user types (internal or external), ensuring streamlined organization and access control across our entire application ecosystem.

The user types are: internal and external The current environments are: test, qa, uat, prod, staging

The app and api names can be changed also.

Considered Options

Full User Type

Subdomain Test Production
App Internal app-internal-test.saif.com app-internal.saif.com
API Internal api-internal-test.saif.com api-internal.saif.com
App External app-test.saif.com app.saif.com
API External api-external-test.saif.com api-external.saif.com

Shorter User Type

Subdomain Test Production
App Internal app-int-test.saif.com app-int.saif.com
API Internal api-int-test.saif.com api-int.saif.com
App External app-test.saif.com app.saif.com
API External api-ext-test.saif.com api-ext.saif.com

Really Short

Subdomain Test Production
App Internal iapp-test.saif.com iapp.saif.com
API Internal iapi-test.saif.com iapi.saif.com
App External app-test.saif.com app.saif.com
API External eapi-test.saif.com eapi.saif.com

Two Subdomains

This may add some complexity with rewrite rules

Subdomain Test Production
App Internal app-int-test.saif.com app-int.saif.com
API Internal app-int-test.saif.com/api app-int.saif.com/api
App External app-test.saif.com app.saif.com
API External app-test.saif.com/api app.saif.com/api

Decision Outcome

Chosen option: Two Subdomains

Although, The two domains option adds complexity of adding rewrite rules and some configuration in the api management terraform module.

It makes the domain names easier for external customers to understand and also does not expose the architecture of (internal or external) to outside parties. The group decided this was a better long choice, so even though it adds short term complexity, it will make the intuitiveness of the intent of easier to understand long term.