Attini Project is a folder (ex a git repository) that contain a attini-config file. This file includes the configuration that the Attini CLI and the Attini Framework need to package and deploy your distribution.

Attini Deployment Origin

Attini deployment origin is an S3 bucket that will be created by attini-setup. It is is responsible for receiving Distributions and trigger the init deploy lambda. The s3 bucket will be called attini-deployment-origin-${region}-${accountId}, and you will find it in your AWS account after you onboard the attini-setup. There will be one Attini deployment origin bucket per AWS account and region.

Attini Artifact Store

An S3 bucket that will be created by attini-setup that is responsible for managing all the artifacts from your distribution and making them available to your environment. The s3 bucket will be called attini-artifact-store-${region}-${accountId}, and you will find it in your AWS account after you onboard the attini-setup.

If your deploy need temporary storage you can use the Attini artifact store with key prefix attini/tmp/. Find more info here.

There will be one Attini artifact store bucket per AWS account and region.

All the artifacts from a distribution will be uploaded to the bucket with the prefix /${AttiniEnvironmentName}/${DistributionName}/${DistributionNameId}/distribution-origin/


Is a zip file containing any files your deployment needs. The distribution should also contain certain configuration that enables the Attini Framework to start a deployment. See more information about distribution configuration here.


When a distribution are being uploaded to an Attini Deployment Origin Bucket it triggers a “Deployment” which tells the Attini Framework to turn the Distribution into real infrastructure. The Attini Framework will then:

  1. Extract the distribution into Attini Artifact Store so that the files become available to the Environment.

  2. If there is a Init deploy configured, the Attini Framework will run it.

  3. If the Init deploy contains a deployment plan, the Attini Framework will run the deployment plan after the Init deploy is successful.

Init Deploy Stack

When a distribution is deployed to an environment, the deployment needs a flexible way to initiate. The Attini framework accomplishes this with the “Init deploy stack”. The Init deploy stack is a CloudFormation stack that is automatically deployed from a template in the distribution, because its a CloudFormation stack you can provision any resources you need. The Init deploy stack creates the Attini deployment plan and it is configured by the attini-config file.

The Init deploy stack is not required, sometimes you just want your distribution to be available to the rest of your environment for example if it contains standard templates used by other deployment plans.

Some distributions can be simple isolated units that only needs one template, then all you need is the init deploy. Then you don’t need to configure a deployment plan.

Attini Deployment Plan

If a distribution needs anything more than one CloudFormation stack (the Init deploy), you want to use the Attini deployment plan to deploy it. The Attini deployment plan is defined as CloudFormation resources in the Init deploy and it can deploy hundreds of CloudFormation stacks, trigger AWS lambdas, run containers to use any software you would need example terraform, kubectl, AWS CDK or AWS SAM. The Attini deployment plan is based in AWS Step Functions and can therefore use all the services integrations that AWS Step Functions offers.

attini-config file

The config file in the root folder of your distribution. The file can be called attini-config.json, attini-config.yaml or attini-config.yml and it contains the distribution name, id, package config, tags and init deploy configuration.