azion.config.js file

The azion.config.js file is a configuration file created during the application’s build process, based on the chosen preset, and serves as the source of truth for the configuration. Each preset provides a set of default settings, which can be replaced by the user. If the file is deleted, the default configuration will be recreated the next time the build process is triggered.

The configurations set by this file include:

  • Origins
  • Cache Settings
  • Rules Engine
  • Network List

The following tables explain the properties of this configuration file.


PropertyTypeExpected valuesError message
namestringThe ‘name’ field must be a string
typestringsingle_origin (default)
load_balancer
live_ingest**
object_storage
The ‘type’ field must be a string
bucketstring, nullThe ‘bucket’ field must be a string or null
prefixstring, nullThe ‘prefix’ field must be a string or null
addressesarrayThe ‘address’ field must be a string
hostHeaderstringThe ‘hostHeader’ field must be a string
additionalPropertiesbooleanNo additional properties are allowed in origin item objects

PropertyTypeExpected valuesError message
namestringThe ‘name’ field must be a string
stalebooleanThe ‘stale’ field must be a boolean
queryStringSortbooleanThe ‘queryStringSort’ field must be a boolean
methods -> postbooleanThe ‘post’ field must be a boolean
methods -> optionsbooleanThe ‘options’ field must be a boolean
methods -> additionalPropertiesbooleanNo additional properties are allowed in the ‘methods’ object
browser -> maxAgeSecondsnumber OR string (mathematical expression)0 ≤ value ≥ 31536000The ‘maxAgeSeconds’ field must be a number or a valid mathematical expression
browser -> additionalPropertiesbooleanNo additional properties are allowed in the ‘browser’ object
browser -> requiredarrayThe ‘maxAgeSeconds’ field is required in the ‘browser’ object
edge -> maxAgeSecondsnumber OR string (a mathematical expression)60 ≤ value ≥ 31536000The ‘maxAgeSeconds’ field must be a number or a valid mathematical expression
edge -> additionalPropertiesbooleanNo additional properties are allowed in the ‘edge’ object
edge -> requiredarrayThe ‘maxAgeSeconds’ field is required in the ‘edge’ object

PropertyTypeError message
requestobjectObject containing request rules properties
namestringThe ‘name’ field must be a string
matchstringThe ‘match’ field must be a string
setOrigin -> namestringThe ‘name’ field must be a string
setOrigin -> typestringThe ‘type’ field must be a string
setOrigin -> additionalPropertiesbooleanNo additional properties are allowed in the ‘setOrigin’ object
setOrigin -> requiredarrayThe ‘name or type’ field is required in the ‘setOrigin’ object
rewrite -> matchstring, nullThe ‘match’ field must be a string or null
rewrite -> setfunctionThe ‘set’ field must be a function
rewrite -> additionalPropertiesbooleanNo additional properties are allowed in the ‘rewrite’ object
rewrite -> requiredarrayThe ‘set’ field is required in the ‘rewrite’ object
setHeadersstring, nullThe ‘setHeaders’ field must be a string or null
forwardCookiesboolean, nullThe ‘forwardCookies’ field must be a boolean or null
setCookiestring, nullThe ‘setCookie’ field must be a string or null
deliverboolean, nullThe ‘deliver’ field must be a boolean or null
runFunction -> pathstringThe ‘path’ field must be a string
runFunction -> namestring, nullThe ‘name’ field can be a string or null
runFunction -> additionalPropertiesbooleanNo additional properties are allowed in the ‘runFunction’ object
runFunction -> requiredarrayThe ‘path’ field is required in the ‘runFunction’ object
cachestring OR objectThe ‘cache’ field must be either a string or an object with specified properties
cache -> name (when cache is an object)stringThe ‘name’ field must be a string
cache -> browser_cache_settings_maximum_ttl (when cache is an object)number, nullThe ‘browser_cache_settings_maximum_ttl’ field must be a number or null
cache -> cdn_cache_settings_maximum_ttl (when cache is an object)number, nullThe ‘cdn_cache_settings_maximum_ttl’ field must be a number or null
cache -> additionalProperties (when cache is an object)booleanNo additional properties are allowed in the cache object
cache -> required (when cache is an object)arrayThe ‘name’ field is required in the cache object

PropertyTypeError message
idnumberThe ‘id’ field must be a number
listTypestringThe ‘listType’ field must be a string
listContentarrayThe ‘listContent’ field must be an array of strings

For further information, access azion.config.js schema in Vulcan repository or Azion API specification.


module.exports = {
origin: [
{
name: 'myneworigin',
type: 'object_storage',
bucket: 'blue-courage',
prefix: '0101010101001',
},
],
cache: [
{
name: 'mycache',
stale: false,
queryStringSort: false,
methods: {
post: false,
options: false,
},
browser: {
maxAgeSeconds: 1000 * 5,
},
edge: {
maxAgeSeconds: 1000,
},
},
],
rules: {
request: [
{
name: 'name1',
match: '/rewrite',
cache: 'mycache',
rewrite: {
match: '^(./)([^/])$',
set: (captured) => `/new/${captured[1]}`, // /original/image.jpg -> /new/image.jpg
},
setCookie: '',
setHeaders: '',
forwardCookies: false,
},
{
name: 'name1qwqqeweqwe',
match: '/rewrite',
cache: 'mycache',
rewrite: {
match: '^(./)([^/])$',
set: (captured) => `/new/${captured[1]}`, // /original/image.jpg -> /new/image.jpg
},
setCookie: '',
setHeaders: '',
forwardCookies: false,
},
{
name: 'name2',
match: '/^/_statics/;', // start with /_statics
setOrigin: {
name: 'myneworigin',
type: 'object_storage',
},
deliver: true,
},
{
name: 'name3',
match: '/^compute/;', // start with /compute
runFunction: {
path: '.edge/worker.js',
},
},
],
},
};