Skip to main content

2 posts tagged with "authorization"

View all tags

Release v0.0.88

· 14 min read
vNext Team
Burgan Tech Engineering

Overview

This release adds two task types and moves authorization behind a provider seam. ExternalHttpTask (type 22) runs an HTTP call directly in the Orchestrator rather than routing it through the Execution service, sharing the existing HTTP configuration, scripting surface and reserved-header hardening with the remote HTTP task (#880). PythonTask (type 23) executes a main(input) contract across Python.NET, an isolated process, or a hardened Docker/Kubernetes container, with strict JSON in and out, centrally configurable limits and no silent fallback between modes (#921). Caller-role resolution becomes provider-baseddefault keeps today's in-process behaviour, morph-idm calls an external IDM once per request scope and fails closed — while the grant engine, transition.roles, availableIn[].roles, queryRoles, function.roles and schema x-roles all keep their semantics (#927). All distributed events now ride the transactional outbox: the EventHook infrastructure is removed, subflow terminal events additionally settle the parent immediately as a post-commit command with the Inbox handler as a durable deduplicated backup, and a loss-tolerant Dapr nudge wakes the poll loops after a commit — measured relay gap p99 65.9 ms (#927). Polling a parent with an active subflow gets a cache and a 304 for the first time, terminal settlement gains a durable SettledAt marker, and parent loads shrink to exactly the correlation they act on (#928). This release runs on component schema 0.0.53.

Release v0.0.79

· 19 min read
vNext Team
Burgan Tech Engineering

Overview

This release turns functions into fully declared client contracts and closes long-standing gaps in transition authorization. Functions gain a declarative contractverbs, inputSchema, outputSchema, inputView, outputView — enforced at invocation (405 with Allow for undeclared verbs, 400 with field-level errors on schema violations) (#858); every contract slot also accepts rule-based entries (first match wins, trailing rule-less fallback) and is discoverable through new /info, /view, /schema endpoints plus a built-in catalog function linked from the state response (#868, #869). Views declare per-mode display with the new { sdi, mdi } object form alongside the legacy string (#858). Mapping scripts can read related instances — the parent that started this instance, or its own sub items — through context.Related instead of duplicating data across the boundary (#857). updateData and exit are now discoverable in availableTransitions and their roles actually filter (#859), availableIn entries can be role-scoped per state (#870), and all role grant evaluation funnels through one evaluator, fixing surfaces that disagreed about the same caller (#860). The state function returns completed child correlations with terminal outcomes (#856), and UrlTemplates collapses to a single BasePath (#871). Fixes cover component version-resolution caching (#867) and subflow terminal-event deduplication (#855). Transition execution moves to Busy-as-mutex — the Busy status itself is the execution mutex, updateData becomes a status-neutral reserve transition admitted unconditionally (the one safe way to update data and advance an instance under parallel requests), cancel/exit bypass the busy check, and every InstanceData row is persisted the moment it is produced (#877). Workflow tracing gains a business-focused span taxonomy (vnext.layer, vnext.span.category) on Aether 1.0.34, defaulting to the Business detail level (#874). This release runs on component schema 0.0.52.