Service configuration

Reference documentation outlining all the available options for configuring services via the architect.json manifest

name

type: string
required: true

If you plan to publish or deploy your service, your service will need a name so that other services and environments can cite it. Some rules for the service name include:

  • Must be prefixed with the account that owns the service
  • Must start with a letter
  • Must include only alpha-numeric characters, underscores, and hyphens

Some tips for naming:

  • Don't put the language or framework used inside the name
  • DO put the api type in the name if you intend to publish versions with different API contracts

description

type: string

A short description of the service and its core function. Useful for potential integrators and environment operators that need to know what to expect from the service.

keywords

type: string[]

An array of tag strings that can be used to further categorize the service for easier discovery by other users on the platform.

language

type: enum['python', 'go', 'java', 'node']

An optional reference to the language used for the service. Including this allows Architect to generate client code for downstream dependencies and ingest them via corresponding SDKs for easier connectivity to dependencies.

api

type: object
required: true

type

type: enum['rest', 'grpc']
required: true

A reference to the API interface type. Inclusion ensures that networking tools are configured appropriately in deployed environments, and optionally allows the Architect CLI to generate client code on behalf of consumers.

definitions

type: string[]

An optional reference to any interface definition files (e.g. a gRPC .proto file) that define the contract for the service and serve as the basis for code generation.

dependencies

type: object

Dependencies are one of the key elements that makes Architect special. By citing service dependencies, Architect is able to build a graph of relationships, provision relevant services, and enrich environment networking with service discovery and network policy enforcement.

The contents of the dependencies field is a key/value dictionary - keys represent the name of a service to consume, and the value is the tag or release reference to the version of the service that is supported.

parameters

type: object

TODO

description

type: string

A short description of the parameter and the type of value it expects to receive.

required

type: boolean
default: true

Indicates whether or not a value for the parameter is required. It is best to require parameters sparingly to make it easier for integrators to use.

alias

type: string

An optional alias for the parameter. If provided, the parameter will be accessible via both the parameter name key and alias key inside the application environment variables.

default

type: string

The default value of the parameter if none was provided for an environment

datastores

type: object

An optional dictionary identifying the data storage software this service needs provisioned and allocated to itself.

docker

type: object
required: true

Identifies details needed for an instance of this datastore to be provisioned for local and on-demand environments.

image

type: string
required: true

A reference to a docker image that can be used to provision an instance of this datastore

target_port

type: number
required: true

The default target port the datastore operates on. Architect will ensure the parent service can securely connect to the datastore on this port.

parameters

type: object

description

type: string

A short description of the parameter and the type of value it expects to receive.

required

type: boolean
default: true

Indicates whether or not a value for the parameter is required. It is best to require parameters sparingly to make it easier for integrators to use.

alias

type: string

An optional alias for the parameter. If provided, the parameter will be accessible via both the parameter name key and alias key inside the application environment variables.

default

type: string

The default value of the parameter if none was provided for an environment

notifications

type: string[]

TODO

subscriptions

type: object

TODO