Skip to content

Minimal Configuration

Configurations for LISA are split into 2 configuration files, base and custom. The base configuration contains the recommended properties that can be overridden with the custom properties file. The custom configuration should contain the minimal properties required to deploy LISA, and any optional properties or overrides. This file should be created at the root of your project (./config-custom.yaml) and needs to contain the following properties:

yaml
accountNumber:
region:
s3BucketModels:
authConfig:
  authority:
  clientId:
  adminGroup:
  jwtGroupsProperty:

LISA Configuration Schema

Config

Raw application configuration schema.

Object containing the following properties:

PropertyDescriptionTypeDefault
appNameName of the application.string'lisa'
profileAWS CLI profile for deployment.string (nullable)
deploymentNameName of the deployment.string'prod'
accountNumber (*)AWS account number for deployment. Must be 12 digits.number | string
region (*)AWS region for deployment.string
restApiConfig (*)Configuration schema for REST API.Object with properties:
  • internetFacing: boolean - Whether the REST API ALB will be configured as internet facing.
  • domainName: string (nullable)
  • sslCertIamArn: string (nullable) - ARN of the self-signed cert to be used throughout the system
  • rdsConfig: Object with properties:
    • username: string - Database username.
    • passwordSecretId: string - SecretsManager Secret ID that stores an existing database password.
    • dbHost: string - Database hostname for existing database instance.
    • dbName: string - Database name for existing database instance.
    • dbPort: number - Port to open on the database instance.
vpcIdVPC ID for the application. (e.g. vpc-0123456789abcdef)string
subnetsArray of subnet objects for the application. These contain a subnetId(e.g. [subnet-fedcba9876543210] and ipv4CidrBlockArray of objects:
  • subnetId: string (startsWith: subnet-)
  • ipv4CidrBlock: string
securityGroupConfigSecurity Group Overrides used across stacks.SecurityGroupConfig
deploymentStageDeployment stage for the application.string'prod'
removalPolicyRemoval policy for resources (destroy or retain).'destroy' | 'retain''destroy'
runCdkNagWhether to run CDK Nag checks.booleanfalse
privateEndpointsWhether to use privateEndpoints for REST API.booleanfalse
s3BucketModels (*)S3 bucket for models.string
mountS3DebUrl (*)URL for S3-mounted Debian package.string
accountNumbersEcrList of AWS account numbers for ECR repositories.Array<number | string>
deployRagWhether to deploy RAG stacks.booleantrue
deployChatWhether to deploy chat stacks.booleantrue
deployDocsWhether to deploy docs stacks.booleantrue
deployUiWhether to deploy UI stacks.booleantrue
logLevelLog level for application.'DEBUG' | 'INFO' | 'WARNING' | 'ERROR''DEBUG'
authConfigAuthorization configuration.Object with properties:
  • authority: string - URL of OIDC authority.
  • clientId: string - Client ID for OIDC IDP .
  • adminGroup: string - Name of the admin group.
  • jwtGroupsProperty: string - Name of the JWT groups property.
  • additionalScopes: Array<string> - Additional JWT scopes to request.
pypiConfigPypi configuration.Object with properties:
  • indexUrl: string - URL for the pypi index.
  • trustedHost: string - Trusted host for pypi.
{"indexUrl":"","trustedHost":""}
condaUrlConda URL configurationstring''
certificateAuthorityBundleCertificate Authority Bundle filestring''
ragRepositoriesRag Repository configuration.Array of objects:
  • repositoryId: string
  • type: Native enum:
    • OPENSEARCH = 'opensearch'
    • PGVECTOR = 'pgvector'
  • opensearchConfig: Object with properties:
    • endpoint: string
    or Object with properties:
    • dataNodes: number (≥1)
    • dataNodeInstanceType: string
    • masterNodes: number (≥0)
    • masterNodeInstanceType: string
    • volumeSize: number (≥10)
    • multiAzWithStandby: boolean
  • rdsConfig: Object with properties:
    • username: string - Database username.
    • passwordSecretId: string - SecretsManager Secret ID that stores an existing database password.
    • dbHost: string - Database hostname for existing database instance.
    • dbName: string - Database name for existing database instance.
    • dbPort: number - Port to open on the database instance.
    - Configuration schema for RDS Instances needed for LiteLLM scaling or PGVector RAG operations.

    The optional fields can be omitted to create a new database instance, otherwise fill in all fields to use an existing database instance.
  • pipelines: Array of objects:
    • chunkOverlap: number
    • chunkSize: number
    • embeddingModel: string
    • s3Bucket: string
    • s3Prefix: string
    • trigger: 'daily' | 'event'
    • collectionName: string
    - Rag ingestion pipeline for automated inclusion into a vector store from S3
[]
ragFileProcessingConfigRag file processing configuration.Object with properties:
  • chunkSize: number (≥100, ≤10000)
  • chunkOverlap: number (≥0)
ecsModelsArray of ECS model configurations.Array of objects:
  • modelName: string - Name of the model.
  • baseImage: string - Base image for the container.
  • inferenceContainer: 'tgi' | 'tei' | 'instructor' | 'vllm' - Prebuilt inference container for serving model.
apiGatewayConfigConfiguration schema for API Gateway EndpointObject with properties:
  • domainName: string (nullable) - Custom domain name for API Gateway Endpoint
nvmeHostMountPathHost path for NVMe drives.string'/nvme'
nvmeContainerMountPathContainer path for NVMe drives.string'/nvme'
tagsArray of key-value pairs for tagging.Array of objects:
  • Key: string
  • Value: string
deploymentPrefixPrefix for deployment resources.string
webAppAssetsPathOptional path to precompiled webapp assets. If not specified the web application will be built at deploy time.string
lambdaLayerAssetsConfiguration for local Lambda layer codeObject with properties:
  • authorizerLayerPath: string - Lambda Authorizer code path
  • commonLayerPath: string - Lambda common layer code path
  • fastapiLayerPath: string - Lambda API code path
  • ragLayerPath: string - Lambda RAG layer code path
  • sdkLayerPath: string - Lambda SDK layer code path
permissionsBoundaryAspectAspect CDK injector for permissions. Ref: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam.PermissionsBoundary.htmlObject with properties:
  • permissionsBoundaryPolicyName: string
  • rolePrefix: string (max length: 20)
  • policyPrefix: string (max length: 20)
  • instanceProfilePrefix: string
stackSynthesizerSet the stack synthesize type. Ref: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.StackSynthesizer.htmlNative enum:
  • CliCredentialsStackSynthesizer = 'CliCredentialsStackSynthesizer'
  • DefaultStackSynthesizer = 'DefaultStackSynthesizer'
  • LegacyStackSynthesizer = 'LegacyStackSynthesizer'
litellmConfig (*)Core LiteLLM configuration - see https://litellm.vercel.app/docs/proxy/configs#all-settings for more details about each field.Object with properties:
  • db_key: string
  • general_settings: any (nullable)
  • litellm_settings: any (nullable)
  • router_settings: any (nullable)
  • environment_variables: any (nullable)
convertInlinePoliciesToManagedConvert inline policies to managed policiesbooleanfalse

(*) Required.

SecurityGroupConfig

Security Group Overrides used across stacks.

Object containing the following properties:

PropertyType
modelSecurityGroupId (*)string (startsWith: sg-)
restAlbSecurityGroupId (*)string (startsWith: sg-)
lambdaSecurityGroupId (*)string (startsWith: sg-)
liteLlmDbSecurityGroupId (*)string (startsWith: sg-)
openSearchSecurityGroupIdstring (startsWith: sg-)
pgVectorSecurityGroupIdstring (startsWith: sg-)

(*) Required.