Skip to content

Moltaro 0.0.50-beta

Release date: 2026-09-08

PDF documents open again in the shared file preview, scheduled C# functions can resolve role services correctly, and Tasks administrators can configure Queue admissions, Worker sources and scoped dispatchers without granting configuration access through membership.

  • Restore native PDF preview for available PDF files in the shared file dialog, including attachments and Entity File fields.
  • Fix role-service initialization in Package and Net Operation Project execution, including scheduled background functions.
  • Configure the Task Definitions, Worker sources and dispatcher roles of each Task Queue, with searchable selection and mobile-friendly controls.
  • Show persisted Tasks navigation setup and direct links to Task Definitions and Queues from module configuration.

The shared dialog allows the browser’s PDF viewer to render inspected PDF files. It additionally verifies the downloaded response’s MIME type before creating a preview URL: HTML, SVG, empty and generic binary responses cannot be substituted for a PDF. Existing access checks, cancellation and preview-URL cleanup remain in place. Download permissions and storage locations do not change.

Package and Net Operation Project functions resolve role services without requiring customer code to register internal authorization services. Permission grants, revocations and complete replacements use the installation’s current permission catalog, including dynamic workspace permissions. Unknown permission keys remain rejected. This fixes scheduled functions that previously failed during construction before their function body could run.

Queue Details provides Task Definitions, Workers and Dispatchers sections. A Queue can admit several active Queue-mode Definitions, and a Definition can be admitted by several Queues. Worker sources can be individual Workers, Workspace Roles or Groups. Dispatcher mappings use an existing Workspace Role and apply to one Queue. Unavailable retained references remain visible as unavailable configuration; membership and dispatcher status do not grant permission to configure the Queue or bypass Entity data access.

Queue-mode Task Definition permissions now include Change queue. The default grants apply to Task administrators in non-completed states; other actor/state grants remain explicit configuration. The existing actor named Queue administrator is now called Queue dispatcher, retaining its numeric identity and existing grants.

Definition and dispatcher selection use direct searchable lists. Adding a Worker source uses a source-type step followed by its searchable list. Failed saves preserve selection. Tasks module configuration also shows already configured navigation menus, excludes completed menus from new setup, refreshes authorized navigation after saving and provides direct Definition/Queue configuration links.

This release delivers configuration, not Task Instance execution, automatic dispatch, backlog ordering or the planned prioritization work.

This release changes the workspace database to store Queue composition and extend its permission configuration. Existing Queues begin with empty composition; the upgrade does not assign Workers or dispatcher roles automatically. Existing Queue-mode Definitions receive the documented Change queue defaults. Saved operation responses are extended without replacing their original identities or replay fingerprints.

Managed Apps use a full runtime replacement and have a short per-application maintenance interval. Capture the normal recovery points before activation. A schema-only downgrade is not a lossless rollback after new Queue configuration has been saved: restore a consistent database recovery point together with its previous runtime. PortalDb has no new migration in this release.

  • Use the normal two-phase Deployctl ReplaceRuntime workflow: prepare and inspect the exact candidate, then promote with its frozen runner. Replace all three managed application runtimes and publish Portal, documentation and matching tooling; verify the existing Runtime VM agent version 0.1.45 on both hosts.
  • Run the exact target package’s compatibility Check/Build for every application before activation. Workspace-authored C# and packages referencing the renamed Tasks actor must use QueueDispatcher rather than QueueAdministrator.
  • Let active import jobs and uploads finish before the runtime replacement. Temporarily pause only their schedule triggers, preserve queues and leases, and restore the prior trigger state after healthy activation. Do not cancel jobs or reset queues to obtain a quiet window.
  • For an already enabled Tasks module, read its current administrative state and use the normal Reconcile security action after upgrade when its applied manifest is older. This uses the supported enable endpoint with the current module RowVersion; it does not require disabling the module. Do not enable an unused/disabled module for the release or edit its manifest state directly in SQL.
  • Verify an actual scheduled catalog-function run and PDF preview after installation, in addition to runtime health. Verify Tasks readiness and existing configuration without creating production sample data.
  • Object Storage and application ownership are unchanged. This release does not transfer applications or their file bodies between machines or accounts.

The Tasks automation contract is 1.8.0. QueueDispatcher replaces QueueAdministrator in the two public actor enums without retaining a source alias; numeric value 4 is unchanged. ChangeQueue has value 14, and TaskQueue is an additional authorization scope. Rebuild dependent C# against the exact candidate SDK; an unchanged NuGet version prefix does not establish compatibility.

Task Queue installation resources now require Kind: MoltaroTaskQueue and ContractVersion: 2. The Queue payload includes TaskDefinitionIds, WorkerSources and DispatcherRoleIds, including empty arrays when appropriate. Version 1 resources are rejected. Re-export or explicitly update older Queue YAML before importing it. Referenced Definitions, Workers, roles and groups must already exist under the specified target identities; the importer does not create them or silently overwrite conflicting Queue composition. Existing database upgrades do not require exporting or reimporting Queues.

The PDF and role-directory fixes introduce no public API signature or additional database change. Existing role-permission concurrency and unknown-key rejection remain authoritative.