plugins

Home

Examples

Plugins

Components

News

lc4

version: 0.0.8 |  date: 04/20/2026 |  Generate likec4 diagrams |  source code

# lc4

Generate likec4 diagrams

# Install

```bash
s6 --install lc4
```
# API

Model:

```raku
file-delete "model.c4";

task-run "model", "lc4", %(
  :type<system>,
  :id<bsys>,
  :desc("Billing System"),
);

task-run "model", "lc4", %(
  :type<system>,
  :id<api>,
  :desc("API Server"),
  :parent<bsys>,
);

task-run "model", "lc4", %(
  :type<component>,
  :id<db>,
  :desc("Database"),
  :parent<api>,
);

task-run "model", "lc4", %(
  :type<system>,
  :id<bs_clients>,
  :desc("Billing clients"),
  :multiple,
);

# links

task-run "model", "lc4", %(
  :type<link>,
  :id("bs_clients:api"),
  :desc("Get buills"),
);

# views

task-run "model", "lc4", %(
  :type<view>,
  :id<bs-system-context>,
  :system<product_tree>,
  :parent<views>,
  :desc("Billing System. System context"),
);

task-run "model", "lc4", %(
  :type<view>,
  :id<bs-container-context>,
  :system<product_tree>,
  :parent<views>,
  :desc("Billing System. Container context"),
);

# includes

for qw<bs bs_clients> -> $id {
  task-run "model", "lc4", %(
    :type<include>,
    :parent<bs-system-context>,
    :$id,
  );
}
```

Deployment:


```raku

file-delete "deployment.c4";

# envs

task-run "deployment", "lc4", %(
  :type<environment>,
  :id<bs_kubernetes>,
  :desc<Kubernetes>,
  :parent<deployment>,
  :deployment,
);


task-run "deployment", "lc4", %(
  :type<environment>,
  :id<namespace>,
  :desc("Kubernetes Namespace"),
  :long_desc("Billing System k8s resources"),
  :parent<bs_kubernetes>,
  :deployment,
);

task-run "deployment", "lc4", %(
  :type<environment>,
  :id<bs_clients>,
  :desc("Billing System Clients"),
  :parent<deployment>,
  :deployment,
);


task-run "deployment", "lc4", %(
  :type<instance_of>,
  :id<clients:bs_clients>,
  :parent<bs_clients>,
  :deployment,
);

task-run "deployment", "lc4", %(
  :type<link>,
  :id<clients:api>,
  :proto<https>,
  :parent<deployment>,
  :deployment,
);

# views

task-run ".",%(
  :type<view>,
  :id<bsys-deployment-production>,
  :parent<views>,
  :desc("Billing System. Production Deployment"),
  :deployment,
);

# includes

for qw<bs_kubernetes bs_kubernetes.* bs_clients bs_clients.*> -> $id {
  task-run "deployment", "lc4", %(
    :type<include>,
    :parent<bsys-deployment-production>,
    :$id,
    :deployment,
  );
}

```

# Author

Alexey Melezhik