Repository navigation
Releases: integrio-intropy/intropy-cli
Releases · integrio-intropy/intropy-cli
Release list
v2.0.0
The CLI now wires integrations around messages. Each component names one message, and the CLI derives the topic and payload type from it. This is a breaking release: a record scaffolded with the older wiring stops assembling, and you need to re-scaffold it.
⚠️ Breaking changes
- The message is the only wiring. An extractor declares
values.publishesand a loader declaresvalues.subscribes, each set to a single message name. The CLI derives the channel (pubsub/<message>) and the payload type (the message name in PascalCase, e.g.orders→Orders). - The old wiring is gone, with no fallback. That covers the nested
subscribe/publishesblocks, thedataschema/external-subscription concept and thetopic/contractoverride keys. A record from before this change fails assembly with migration guidance instead of being read leniently. int createno longer takes--registry-url.--publishes/--subscribeno longer look up a registry snapshot. To find messages across systems, useintropy message list/intropy message show.- Message names must be DNS-1123 subdomains (e.g.
order-created, notOrderCreated). A bad name now fails at scaffold time instead of later in the host's topology validation.
Features
- Loaders own their subscriptions. A loader's scaffold record owns its declarative Dapr Subscription, and the topology and deployment manifests render it as-is, so a deployment routes a message the same way a local run does. A record without
defaultmeans ignore, which matches what loader code does with unrouted events. Routes that leave out the subscribed message are rejected. sys updaterefreshes changed components. Declared components whose scaffold records changed get their wiring keys rewritten. Other stored keys are kept, and the refreshed topics, ports and messages are merged into the host.- Template engine additions (for intropy-templates authors):
spec.fileseachexpansion renders a path once per list element, e.g.src/Routes/{{ pascal .route.message }}/Deserializer.cs.tmpl.- A
pascaltemplate function uses the same derivation as system assembly. - Array-of-object parameters with
minItems/maxItems, prompted one element at a time interactively, or passed as JSON via--set.
- Dashboard: the topology view shows subscription edges, the flow detail view shows routes, and the scaffold form supports list (array-of-object) parameters and message parameters.
Bug fixes
- Transactional integrations deploy as CronJobs. They sweep, drain and exit, so as Deployments they restarted into CrashLoopBackOff. Kind matching ignores case and dashes (
transactional-integration,TransactionalIntegration, …). - Fixed a regression in how template values are read.
Full changelog: v1.0.1...v2.0.0
v1.0.1
v1.0.0
Changelog
Features
- 5b51838: feat(cli): mark preview commands and warn on use (@robinhultman)
- d940e97: feat(config): add customer contexts with context-aware resolution (@robinhultman)
- 1d00d8e: feat(context): add 'context list' and 'context show' commands (@robinhultman)
- 67f8f05: feat(context): add 'context use' to switch the active context (@robinhultman)
- e5eff0a: feat(dashboard): label traces <service.name>:, as Aspire does (@robinhultman)
- 1af6015: feat(dashboard): render the running system's traces in a Tracing tab (@robinhultman)
- e707f4f: feat(dashboard): retire the templates tab; creation happens in the flow view (@robinhultman)
- f478668: feat(git): add managed shallow tag clone (@robinhultman)
- a70e40f: feat(xregistry): wire message integration into subscribe, discovery, and assembly (@robinhultman)
Bug Fixes
- a27b9ab: fix(cli): type cobra's usage errors as exit 2 instead of message sniffing (@robinhultman)
- 73ca8b8: fix(dashboard): debounce and abort the form's suggestion refresh (@robinhultman)
- 8135f26: fix(dashboard): pin renders to the held release (@robinhultman)
- ee934f0: fix(dashboard): resolve the template release once per process (@robinhultman)
- 3598a13: fix(template): report GitHub rate limits instead of a bare 403 (@robinhultman)
Other Changes
- 466e3e5: Change intropy.dev to intropy.io (@robinhultman)
- bec04d9: Complete intropy.dev to intropy.io rename in message wiring (@robinhultman)
- c0bd0df: Derive outputdir (@robinhultman)
- c20a695: Derived facts (@robinhultman)
- a21d4a0: Fix dash (@robinhultman)
- 11ded50: Fix scaffold bug (@robinhultman)
- 5ff8c5d: Formatting (@robinhultman)
- caafaf5: New flow gui (@robinhultman)
- aa894b7: Resolve organization and centralize parameter derivation (@robinhultman)
- b5ad7b4: Start stop system (@robinhultman)
- f3f13c1: Sync host (@robinhultman)
- 8cbfa7c: Test seeding (@robinhultman)
- 155acc1: docs(agents): sanction the 'use' verb for customer contexts (@robinhultman)
- e2c2472: docs(readme): document customer contexts and the context commands (@robinhultman)
- e044eba: pub sub from registry (@robinhultman)
- 3d07b56: refactor(dashboard): make the trace list the waterfall (@robinhultman)
- ddb53d4: refactor(gitops): extract cached-clone primitives into internal/gitclone (@robinhultman)
- 81b248f: refactor(template): consolidate the scaffold wiring vocabulary (@robinhultman)
- 5deee04: refactor(template): fetch the library via cached git clone (@robinhultman)
v0.10.0
Switch to Homebrew formula instead of cask
v0.9.0
v0.8.0
v0.7.0
v0.6.3
Fix problem when specifying both o and n flags
v0.6.2
Rename blueprints to templates to better align with the Intropy model
v0.6.1
Rename blueprints to templates to better align with the Intropy model