Changelog#

Unreleased#

Added#

Templates can read the ibek process environment with {{ env.NAME }}, {{ env['NAME'] }}, or {{ env.get('NAME', 'fallback') }}. The mapping is read-only and reflects the environment at render time.

Direct access to a missing variable fails in entity expressions; use get when a fallback is intentional. An empty but defined variable remains empty. The final assembly templates retain their existing permissive handling of missing values. Existing entity fields and shared variables named env take precedence over the new helper.

_global remains supported, with no deprecation or migration requirement. In particular, _global.get_env('NAME') still returns an empty string for an unset variable. Older ibek releases without the new env mapping should continue to use that form.

Fixed#

ibek pattern schema failed with CERTIFICATE_VERIFY_FAILED on RHEL when run through uvx, because the uv-managed Python looks for CA certificates at /etc/ssl/cert.pem. Schema downloads now verify against the operating system trust store with truststore (#364).

The published schema cache no longer assumes release tags are immutable. Each run revalidates the cached copy with If-None-Match / If-Modified-Since, and uses the cached copy when a fetch fails.

A failed fetch no longer leaves a possibly stale ioc.schema.json in place silently. If nothing is cached for the image tag and the instance already has a schema, ibek pattern schema exits 1. Only a 404 or 410 response still skips generation quietly.

Documentation#

Replaced the maintained guides and references with compact documentation of the CLI lifecycle, YAML and Jinja rendering, ibek-support Ansible recipes, and ibek’s role in epics-containers. Added runnable rendering tutorials and documented the persistent schema cache used by ibek pattern (issue #365).

Published releases are listed on GitHub.