The Config module provides comprehensive configuration and validation for the Azion Platform. It supports applications, workloads, connectors, functions, storage, firewall rules, WAF settings, network lists, custom pages, and purge operations.

Go to Azion Libraries Overview

Usage

You can configure your Azion application in two ways:

1. Using JSDoc for type information:

/** @type {import('azion').AzionConfig} */
const config = {...}
export default config;

2. Using the defineConfig function:

import { defineConfig } from 'azion/config';
const config = defineConfig({
build: {
entry: './src/index.js',
preset: 'javascript',
},
// ... other configurations
});
export default config;

Functions

defineConfig

Configures and validates the options for Azion Applications.

Parameters:

ParameterTypeDescription
configAzionConfigThe configuration object for the Azion Application.

Returns:

Return TypeDescription
AzionConfigThe validated configuration object.

Example:

import { defineConfig } from 'azion/config';
const config = defineConfig({
build: {
entry: './src/index.js',
preset: 'javascript',
bundler: 'esbuild',
},
applications: [
{
name: 'my-app',
active: true,
cache: [
{
name: 'my-cache',
browser: { maxAgeSeconds: 3600 },
edge: { maxAgeSeconds: 7200 },
},
],
},
],
storage: [
{
name: 'my-storage',
workloadsAccess: 'read_write',
dir: './storage',
prefix: 'app-data',
},
],
});
export default config;

processConfig

Processes the configuration object and returns a manifest.

Parameters:

ParameterTypeDescription
configAzionConfigThe configuration object.

Returns:

Return TypeDescription
objectThe processed manifest.

Example:

import { AzionConfig, processConfig } from 'azion';
const config: AzionConfig = {...};
const manifest = processConfig(config);
console.log(manifest);

convertJsonConfigToObject

Converts a JSON configuration string to an AzionConfig object.

Parameters:

ParameterTypeDescription
configstringThe JSON configuration string.

Returns:

Return TypeDescription
AzionConfigThe configuration object.

Example:

import { convertJsonConfigToObject } from 'azion';
const manifestJson = {
workloads: [
{
name: 'my-workload',
active: true,
domains: ['example.com'],
},
],
};
const config = convertJsonConfigToObject(JSON.stringify(manifestJson));
console.log(config);

Configuration sections

The AzionConfig object supports the following sections:

SectionDescription
buildBuild configuration (entry, preset, bundler).
applicationsList of applications with cache, rules, and function instances.
workloadsWorkload configurations for domain management.
connectorsHTTP, storage, or live ingest connectors.
functionsFunctions configurations.
storageStorage bucket configurations.
firewallFirewall rules and configurations.
wafWeb Application Firewall settings.
networkListNetwork lists (IP, ASN, countries).
customPagesCustom error page configurations.
purgeURLs or cache keys to purge.
kvKey-Value storage configurations.

Types

AzionConfig

The main configuration object.

PropertyTypeDescription
buildAzionBuild (optional)Build configuration.
applicationsAzionApplication[] (optional)List of applications.
workloadsAzionWorkload[] (optional)List of workloads.
connectorsAzionConnector[] (optional)List of connectors.
functionsAzionFunction[] (optional)List of functions.
storageAzionStorage[] (optional)List of storage configurations.
firewallAzionFirewall[] (optional)List of firewall configurations.
wafAzionWaf[] (optional)List of WAF configurations.
networkListAzionNetworkList[] (optional)List of network lists.
customPagesAzionCustomPages[] (optional)List of custom pages.
purgeAzionPurge[] (optional)List of purge operations.
kvAzionKV[] (optional)List of KV configurations.

AzionBuild

Build configuration options.

PropertyTypeDescription
entrystring | string[] | Record<string, string> (optional)Entry file(s).
presetstring | AzionBuildPreset (optional)Build preset.
bundler'esbuild' | 'webpack' (optional)Bundler to use. Default: 'esbuild'.
polyfillsboolean (optional)Include polyfills.
extend(context: T) => T (optional)Extend bundler configuration.
memoryFSobject (optional)In-memory file system configuration.

AzionApplication

Application configuration.

PropertyTypeDescription
namestringApplication name (1-250 characters).
activeboolean (optional)Whether active. Default: true.
debugboolean (optional)Enable debug mode. Default: false.
edgeCacheEnabledboolean (optional)Enable edge cache. Default: true.
functionsEnabledboolean (optional)Enable functions. Default: false.
applicationAcceleratorEnabledboolean (optional)Enable accelerator. Default: false.
imageProcessorEnabledboolean (optional)Enable image processor. Default: false.
cacheAzionCache[] (optional)Cache configurations.
rulesAzionRules (optional)Request/response rules.
functionsInstancesFunctionInstance[] (optional)Function instances.

AzionWorkload

Workload configuration for domain management.

PropertyTypeDescription
namestringWorkload name (1-100 characters).
activeboolean (optional)Whether active. Default: true.
infrastructure1 | 2 (optional)Infrastructure type.
domainsstring[]List of domains.
workloadDomainAllowAccessboolean (optional)Allow domain access. Default: true.
tlsTLSConfig (optional)TLS configuration.
protocolsProtocolConfig (optional)Protocol configuration.
mtlsMTLSConfig (optional)Mutual TLS configuration.
deploymentsDeployment[]List of deployments.

AzionConnector

Connector configuration.

PropertyTypeDescription
namestringConnector name (1-255 characters).
activeboolean (optional)Whether active. Default: true.
type'http' | 'storage' | 'live_ingest'Connector type.
attributesConnectorAttributesConnector-specific attributes.

AzionFunction

Function configuration.

PropertyTypeDescription
namestringFunction name (1-250 characters).
pathstringPath to function file.
runtime'azion_js' (optional)Runtime. Default: 'azion_js'.
defaultArgsobject (optional)Default arguments.
executionEnvironment'application' | 'firewall' (optional)Execution environment.
activeboolean (optional)Whether active. Default: true.
bindingsFunctionBindings (optional)Function bindings.

AzionStorage

Storage configuration.

PropertyTypeDescription
namestringStorage name (6-63 characters).
dirstringLocal directory path.
workloadsAccess'read_only' | 'read_write' | 'restricted' (optional)Access permissions.
prefixstringStorage prefix.

AzionCache

Cache configuration.

PropertyTypeDescription
namestringCache name (1-250 characters).
staleboolean (optional)Allow stale content.
queryStringSortboolean (optional)Sort query string parameters.
methods{ post?: boolean; options?: boolean } (optional)HTTP methods to cache.
browser{ maxAgeSeconds: number | string } (optional)Browser cache settings.
edge{ maxAgeSeconds: number | string } (optional)Edge cache settings.
cacheByCookieobject (optional)Cache by cookie settings.
cacheByQueryStringobject (optional)Cache by query string settings.
tieredCacheobject (optional)Tiered cache settings.

AzionFirewall

Firewall configuration.

PropertyTypeDescription
namestringFirewall name.
activeboolean (optional)Whether active.
functionsboolean (optional)Enable functions.
networkProtectionboolean (optional)Enable network protection.
wafboolean (optional)Enable WAF.
rulesAzionFirewallRule[] (optional)Firewall rules.

AzionWaf

WAF configuration.

PropertyTypeDescription
namestringWAF name (1-250 characters).
productVersionstring (optional)Product version. Default: '1.0'.
engineSettingsWafEngineSettingsWAF engine configuration.

AzionNetworkList

Network list configuration.

PropertyTypeDescription
namestringNetwork list name (1-250 characters).
type'ip_cidr' | 'asn' | 'countries'List type.
itemsstring[]List items (1-20000).
activeboolean (optional)Whether active. Default: true.

AzionPurge

Purge configuration.

PropertyTypeDescription
type'url' | 'cachekey' | 'wildcard'Purge type.
itemsstring[]URLs or patterns to purge.
layer'cache' | 'tiered_cache' (optional)Cache layer.

AzionKV

KV storage configuration.

PropertyTypeDescription
namestringKV storage name (1-255 characters).