Getting Started

Rescile Community Edition

All-in-one standalone binary combining graph generation and a GraphQL server for local blueprinting and exploration.

Rescile Community Edition (rescile-ce)

rescile-ce is the all-in-one, standalone Community Edition binary for the rescile hybrid environment blueprinting system. It combines the powerful graph generation capabilities of the Rescile Importer with a high-performance GraphQL server in a single, easy-to-use executable.

rescile-ce is built using the exact same code base as the commercial rescile Controller. You get the same robust, production-tested Rust foundation, graph engine, and compliance-as-code evaluation layer, packaged specifically for local development, exploration, and small-scale operations.


Overview

Unlike the individual pipeline components (rescile-importer and rescile-controller) which are designed for automated CI/CD and distributed microservice architectures, rescile-ce handles the entire lifecycle in memory. It reads your raw asset data and TOML blueprints, builds the interconnected graph, applies compliance rules, and immediately serves the result via a built-in Web UI and GraphQL API.

CLI Usage and Parameters

rescile-ce provides several subcommands for serving, diffing, and managing your graph.

Synopsis:

rescile-ce [GLOBAL OPTIONS] <COMMAND>

Global Options

These options apply to how rescile-ce builds the graph and loads modules, and can be used across most subcommands:

  • -d, --data-dir <DATA_DIR>: The root directory for your data files (assets, models, compliance, output). Defaults to ./data.
  • --module <MODULE_PATH_OR_URL>: Path or Git URL to a Rescile module. Can be used multiple times to merge logic from several modules (e.g., --module https://github.com/org/core-module.git --module ./local-overrides).
  • --module-params <KEY=VALUE;...>: Global parameters passed to all modules, compliance, and output files. Used for dynamic templating (e.g., --module-params "region=emea;env=prod").
  • --debug[=<SELECTOR>...]: Enables verbose debug logging. Optionally pass a comma-separated list of file names to filter the output (e.g., --debug=server,bafin).
  • --remove-orphaned-assets: Automatically removes asset nodes from the final graph if they have no established relationships.
  • --writeonce-keys <KEYS>: Comma-separated list of property keys (e.g., created) that, once set, will not be overwritten by subsequent module iterations. Defaults to created.
  • --max-loop <N>: Maximum number of iterations for the graph stabilization loop. Defaults to 8.
  • --git-client <CLIENT>: Specifies the Git client to use for cloning modules (auto, gh, git, or internal).

Subcommands

  • serve: Builds the graph and starts the Web UI and GraphQL server.
    • --port <PORT>: Listening port (default: 7600).
    • --listen <IP>: Listener IP address (default: 127.0.0.1).
  • save <FILE>: Builds the graph and dumps the raw in-memory representation to a JSON file.
  • diff <FILE>: Builds the current graph from the data directory and compares its structure (added/removed nodes and edges) against an older, saved graph JSON file.
  • bootstrap: Creates starter asset and input files from the bootstrap content defined in a loaded module.toml.
  • update [VERSION]: Checks for and safely installs in-place updates for rescile-ce.
  • info / license: Displays application info, build details, and licensing.

The Web UI & API

When you run rescile-ce serve, the tool processes your configuration and launches a local web server. By default, you can access it at http://127.0.0.1:7600.

1. The Dashboard (/)

The root URL serves a built-in dashboard featuring:

  • Graph Statistics: Real-time counts of total resources, resource types, relations, and properties.
  • Generated Outputs: A list of generated JSON/text output artifacts (defined in your output/*.toml blueprints) with direct links to view or download them via the REST API.
  • Module Index: A registry of loaded modules, including quick access to any embedded app web folders.

Overview

2. GraphiQL Explorer (/graphiql)

An interactive GraphQL IDE is bundled out-of-the-box. This allows you to construct, test, and execute GraphQL queries against your fully modeled and compliance-enriched hybrid environment. Autocomplete and schema documentation are fully supported based on the dynamic types generated by your blueprints.

GraphiQL

3. Core API Endpoints

  • /graphql: The main GraphQL endpoint (accepts POST requests and GET with query params).
  • /api/outputs/<type>/<name>: REST endpoints providing direct access to generated output files.

Extensibility Using Modules

rescile-ce is designed to be highly extensible. Rather than writing all blueprints from scratch, you can compose your architecture using Modules. A module is simply a directory containing its own assets, models, compliance, and output definitions, along with a module.toml manifest.

Modules

Loading Modules

Modules can be loaded from local directories or remotely via Git (the embedded Git client handles cloning and caching automatically):

rescile-ce serve \
  --module https://github.com/my-org/rescile-aws-core.git \
  --module https://github.com/my-org/rescile-compliance-iso27001.git \
  -d ./my-local-environment

The system merges the rules from all modules. Your local ./data directory acts as the final overlay, allowing you to inject local assets or override remote module logic.

Dynamic Interfaces (app/ Folders)

A powerful feature of rescile-ce modules is the ability to serve custom user interfaces or alternate rendering formats provided by modules. If a module includes a app/ directory, rescile-ce automatically mounts and serves it under /module/<module-id>/.

Why is this useful? It allows a module to ship with its own custom, browser-based visualizations. Because rescile-ce serves the GraphQL API locally, a module’s HTML or SVG file can include JavaScript that queries the graph data on the fly.

This transforms rescile-ce from just an importer/API server into a fully customizable blueprinting and reporting platform.