Bootstrapping a Project
When starting a new project that uses an existing module, the rescile-ce bootstrap command (see the CLI Reference for command syntax) copies starter asset and input files from the module’s own assets/ and input/ directories into your local data/ directory.
Unlike earlier releases, rescile no longer implicitly copies module assets during graph builds. Starter files are copied only when you explicitly run bootstrap or pass --init to serve, save, or validate.
What Gets Copied
A module can ship reference data in the same directory layout as a project:
my-module/
├── module.toml
├── models/
├── compliance/
├── assets/ # starter CSVs
└── input/ # starter JSON inputs
When you run bootstrap, rescile copies these files into your local data/ directory:
my-module/assets/*.csv→data/assets/*.csvmy-module/input/*.json→data/input/*.json
CSV Merge Behavior
bootstrap merges CSV files row-wise rather than overwriting them.
- If the local file does not exist, the module file is copied as-is.
- If the local file already exists, module rows are appended to local rows.
- Existing local rows are never modified or deleted.
This lets a module provide reference rows (for example, a small system.csv or team.csv) while your local files always remain the authoritative source of truth.
Input JSON Copy Behavior
JSON input files are copied only if the local file does not already exist. Use --force to replace them.
Using the Bootstrap Command
Bootstrap from all loaded modules at once:
rescile-ce --module https://github.com/my-org/rescile-modules/standard-webapp bootstrap
Restrict the operation to one module:
rescile-ce --module ./standard-webapp --module ./core-platform bootstrap --module standard-webapp
Preview what would change without writing anything:
rescile-ce --module https://github.com/my-org/rescile-modules/standard-webapp bootstrap --diff
Overwrite existing local files:
rescile-ce --module https://github.com/my-org/rescile-modules/standard-webapp bootstrap --force
Running Bootstrap Automatically
To run the bootstrap step before another command, use --init:
rescile-ce --module ./standard-webapp serve --init
rescile-ce --module ./standard-webapp save ./graph.json --init
rescile-ce --module ./standard-webapp validate --init
This is useful in CI pipelines or when starting a fresh checkout.