Skip to content
GitLab

akili init

Initialize a new data product in the current directory by creating an .akili/ directory with 6 scaffold YAML manifest files. This is the fastest way to start building a data product.

Terminal window
akili init [--name <product-name>]

akili init creates the standard Akili data product directory structure in the current working directory. It generates 6 manifest templates that define every aspect of a data product:

FilePurpose
.akili/product.yamlProduct identity, metadata, schedule, tier
.akili/sources.yamlSource declarations and connection references
.akili/transforms.yamlTransform definitions (SQL or Python)
.akili/quality.yamlQuality checks and SLA definitions
.akili/serving.yamlServing intent and materialization config
.akili/governance.yamlClassification and access control

If --name is not provided, the product name defaults to the current directory name.

FlagShortDefaultDescription
--namecurrent directory nameProduct name to use in the manifest
Terminal window
# Initialize in the current directory (uses directory name)
mkdir daily-orders && cd daily-orders
akili init
# Initialized data product 'daily-orders' with 6 manifest files
# .akili/product.yaml
# .akili/sources.yaml
# .akili/transforms.yaml
# .akili/quality.yaml
# .akili/serving.yaml
# .akili/governance.yaml
# Initialize with a custom name
akili init --name customer-segmentation
apiVersion: akili/v1
kind: DataProduct
metadata:
name: daily-orders
description: ""
owner: ""
tags: []
spec:
schedule: "@daily"
tier: bronze
apiVersion: akili/v1
kind: Sources
sources: []
# - name: example_source
# connection: my_connection
# resource: public.my_table
apiVersion: akili/v1
kind: Quality
checks: []
# - name: not_null_check
# type: not_null
# column: id
sla:
freshness: 24h
completeness: 0.99
apiVersion: akili/v1
kind: Serving
intent: analytical
# Options: analytical, operational, streaming
materialization:
enabled: false
apiVersion: akili/v1
kind: Governance
classification: internal
# Options: public, internal, confidential, restricted
access: []
# - team: data-engineering
# role: owner
  • If .akili/ already exists, the command prints a warning and exits without modifying any files. This prevents accidental overwrites of existing manifest work.
  • The command is idempotent in the sense that running it twice has no effect on the second run.
  • No network connection is required.

After initializing, the typical workflow is:

  1. Edit the manifest files in .akili/ to define your data product
  2. Validate the manifests: akili validate .akili/
  3. Create the product on the platform: akili product create --name daily-orders --namespace sales
  4. Deploy: akili product deploy daily-orders