Table of Contents

Release Notes

Welcome to Phoesion Glow release notes section.
Here you can see the changes, new features and bug fixes for each release.


Release v2.5.4

Released: July 12, 2025 (7/12/2025)

Bug Fixes

Improvements

  • Target .NET SDK 9.0.302

Release v2.5.3

Released: June 21, 2025 (6/21/2025)

Improvements

  • Memory usage and stability improvements
  • Fix SignalR client disconnection handling/
  • Memory/Performance improvements while streaming

Release v2.5.2

Released: June 14, 2025 (6/14/2025)

Improvements

  • Target .NET SDK 9.0.301
  • Memory usage and stability improvements
  • Improve asp workload path detection

Release v2.5.1

Released: June 7, 2025 (6/7/2025)

Critical Bug Fixes

  • Fix memory leak in Prism

Bug Fixes

  • Fix date-range filtering for historical metrics
  • Fix Postgres maindb migration (v67)
  • Fix missing packages for running anomaly detection

Improvements

  • Reduce memory usage for Lighthouse and Prism entities
  • Auto-detect and apply kubernetes requests (memory) for services, based on past metrics
  • Improve kubernetes sample yaml files

Release v2.5

Released: May 27, 2025 (5/27/2025)

📢 Announcements 📢

  • All licensing restrictions have been lifted!
    Phoesion Glow is now free to use to it's full extend without any licensing limitations!

Bug Fixes

  • fix link opening in default browser for Linux

Improvements

  • Target .NET SDK 9.0.300
  • Reduce Prism and Lighthouse memory footprint

Breaking Changes

  • No breaking changes. (This release is fully compatible with glow v2.1.x releases)

Release v2.1.7

Released: April 24, 2025 (4/24/2025)

Bug Fixes

  • [Critical] Fix Null Reference exception when creating new/default quantum space

Release v2.1.6

Released: April 23, 2025 (4/23/2025)

Bug Fixes

  • Fix user/role assignment in qSpaces
  • Fix flickering in Blazor incident page when refreshing/reloading
  • Fix references of Microsoft.AspNetCore.Http.Features for older .net versions
  • fix deployer "corrupted key" erroneous detection of valid Lighthouse public keys
  • UI fixes/improvements

Improvements

  • Allow connection profile renaming in Blaze
  • Target .Net SDK 9.0.203
  • Report status while purging logs

Release v2.1.5

Released: April 7, 2025 (4/7/2025)

Bug Fixes

  • UI fixes
  • Fix log deleting (postgre/mysql) foreign key constraint violation.

Improvements

  • Add anonymous middleware. (can do app.UseMiddleware(async (chain,context)=>{ .. }) without a middleware type)
  • Reduce memory usage/footprint of Lighthouse (and other components)

Release v2.1.4

Released: April 3, 2025 (4/3/2025)

Improvements

  • Auto-detect kubernetes requests.memory for services based on past metrics.

Bug Fixes

  • UI fixes
  • Fix docker images base platform targeting
  • Fix archive packing for macOS (+some other Linux distros)

Release v2.1.3

Released: March 18, 2025 (3/18/2025)

Improvements

  • Target NET SDK 9.0.201

Features

  • Add maintenance mode override cookie. (Allows developers to use qSpaces services while in maintenance mode)

Bug Fixes

  • Fix Maintenance mode enter/exit not working

Release v2.1.2

Released: March 14, 2025 (3/14/2025)

Features

  • Pre-compress static files (during deployment)
  • Use ECC encryption/digital signing
  • Added section for setting requests in pgproject files for kubernetes services
  • Added speculative cache

Improvements

  • Target NET SDK 9.0.200
  • Using GUID v7 (in appjob, appfsm etc)
  • Improved quantum space secrets provider configurations
  • Handle same-service interop calls as inline execution
  • Logging sqlite database can be automatically deleted/reset by Lighthouse (when exceeding a filesize or disk-space too low)

Optimizations

  • Improve memory usage in transport layer
  • Reduced memory footprint for Entities and firefly services
  • Optimized stream setup/termination between entities. (latency dropped from 40-60ms to 2-10ms)

Bug Fixes

  • Fixed service shutdown/termination in kubernetes (SIGTERM propagation)

Breaking Changes

  • Removed Content folder for static files (now using only wwwroot folder)
  • Renamed FromParams->FromRoute and ParamsMap->RouteMap

Release v2.0.6

Released: July 23, 2024 (7/23/2024)

Features

  • Added options for Reactor-Debugger to run hologram services in Docker.
  • Record metrics for all endpoints (actions/interop).
  • Added Analytics per-QuantumSpace/Service/Module. Added Statistics for request Count/Duration/StatusCodes.
  • Added AppFeatureFlags system to allow changing the cloud application behavior dynamically. ( Added Sample 27_AppFeatures )
  • Added AppCache, a build-in persistent distributed cache and key/value store for cloud applications. ( added sample 28_AppCache )
  • Added AppMutex, a build-in distributed mutex for locking critical sections across services. (Added sample 29_AppMutex)
  • Added AppJobs system for distributed job scheduling. (Added sample 30_AppJobs)
  • Added Distributed State Machine for application services. (sample 31_AppStateMachine)
  • Added Http Reverse Proxy capabilities for Prism using YARP.
  • Added Inspect mode for Quantum Spaces to dynamically increase logging levels and observability without redeploying. (for a short debugging/examination period)
  • Added request Tracing information for Ray in Log Inspector.
  • Added Primary/Secondary modes for Lighthouse. Secondary Lighthouse instances allows the horizontal scaling of lighthouse work like distributed trace/logging processing and app services (jobs/cache/fsm/etc)
  • Added a Machine Learning (AI) system (named MaLi), that is used for Anomaly Detection in request-count, cpu/mem/network usage and more.
  • Added build-in Idempotent api system using the new [Idempotent] attribute.
  • Added Reactor Agent GUI tool for monitoring service incidents/logs/appdata while debugging.
  • Added Alerts system, that are user-specified rules/triggers and actions. (eg. create Incident when qSpace cpu>90% )
  • Added Quantum space IP Filtering/Blocking rules.
  • Added Rest API for Lighthouse.
  • Entities can load configurations from external Secrets Manager/Providers. (AWS Secrets Manager, Azure KeyVault)
  • Services can load appsettings configurations from external Secrets Manager/Providers. (AWS Secrets Manager, Azure KeyVault)

Improvements

  • Target NET SDK 8.0.303
  • Added Bookmark and Permalinks for Ray Logs and Incidents in Blaze
  • Added Quantum-Space Rate-Limiting dynamically editable from Blaze
  • Added Request Duration, Response Status Code and Disk usage metrics.
  • Added Client Connections metric to monitor active connections (+ PushHub connections)
  • Detect bad json in all appsettings.xxx.json files during hologram compilation.
  • Compute metrics in percentiles instead of average. (p0,p50,p75,p95,p100)
  • Select Interop serializer (MsgPack/Json) using the InputSerializer/OutputSerializer arguments to the [Interop] attribute
  • Prism will now disconnect PushHub clients when Quantum Space is disabled. (In maintenance mode connected clients will not be disconnected but messages will not go though to services)
  • Improve the Incident management area in Blaze. (added Archived/InReview mode for incidents and incident filters)
  • Improve memory usage detection for Linux processes.
  • Update to new Razor rendering engine.
  • Removed usage of Moq package/library and replaced with NSubstitute. (unit testing samples updated)
  • New AppData lighthouse database for storing business/app logic data (feature-flags,jobs,state-machines,caches,etc..).
  • Added SignalR PushHub streaming upload/download support (sample 6_PushHub/SignalR).
  • New Console logger for Rector Debugger.
  • Firefly supervisor will terminate/restart service processes that exceeds a configured memory/cpu usage.
  • Added new FireflyBackgroundWorker and FireflyBackgroundPeriodicWorker classes to create hosted workers similar to the HostedServices model. (updated sample 16_BackgroundWorker)
  • Added Master Password for Blaze.
  • Allow service names with slashes. eg /api/invoices or /backend/customer etc

Optimizations

  • Optimized log processing pipeline (x8 speedup from glow v1.x, for all providers except MySQL).
  • Optimized Hologram compilation time by caching and reusing type analysis intermediary results.

Bug Fixes

  • Fix for GlowRestClient when consuming byte[] responses. (fix: added 'application/octet-stream' in accept headers)
  • Fix Reactor-Debugger not passing correctly the environment-name to the child-process when running a hologram.
  • Fix log filtering for entries that have only service-name (and no module/actions).
  • Fix WebUI not connecting using https in Chrome

Breaking Changes

  • New Logging DB Schema (requires logging database reset).
  • Change default casing of JsonSerializer from PascalCase to camelCase. (to match ASP.Net default behavior)
  • New hologram file format includes checksums to detect corrupted files.
  • Remove build-in template for IdentityServer. New repo/templates available at https://github.com/Phoesion/Skoruba-Duende.IdentityServer-Admin
  • Separate Razor engine to a new package. Need to add services.AddGlowRazor() to enable engine.
  • Deprecated package Phoesion.Glow.SDK.Firefly.EntityFrameworkCore.Design.
  • Dropping netstandard2.0 support
  • Minimum supported Ubuntu version is 20.04.
  • Renamed Operations to StickyOperations as the initial term was too broad and the new term better describes the locality of the running operation (sticks to a service instance).
  • Remove custom Phoesion.MsgPack dependency and replaced with MessagePack package.
Note

Phoesion Glow v2.x is NOT compatible with v1.x.
After installing the new (v2) tools on your system, use the older (v1.1.4) portable-app version of Blaze to connect to older Lighthouse (v1.x) servers.
To run older services from Visual Studio, you can stop the Reactor service from Task Manager and start the old (v1.1.4) Reactor as a docker container using
docker run --name reactor-1.1.4 -d -p 80:80 -p 443:443 -p 15000-15010:15000-15010 -p 16000:16000 phoesion/phoesion.glow.reactor-dev:1.1.4


Release v1.1.4

Released: July 13, 2023 (7/13/2023)

Bug Fixes

  • Fix Reactor-Debugger not passing correctly the environment-name to the child-process when running a hologram.
  • fix Firefly Error Logger not logging unhanded exceptions.
  • Fix for GlowRestClient when consuming byte[] responses. (fix: added 'application/octet-stream' in accept headers)
  • Fix Blaze structured log parsing not replacing all keys in message template.

Release v1.1.3

Released: June 9, 2023 (6/9/2023)

Bug Fixes

  • Fix timeout when uploading files over slow connections (during deploy)

Release v1.1.2

Released: June 1, 2023 (6/1/2023)

Improvements

  • UI improvements & minor fixes

Release v1.1.1

Released: May 30, 2023 (5/30/2023)

Features

  • Add Background Jobs for Lighthouse. Available jobs : Logs.Purge, Archives.Purge, Metrics.Purge
  • Add Polly resilience policies for Interop and GlowRestClient
  • Run Reactor-Debugger on (self-contained) Holograms. (launch services embedded in a .pghologram files)
  • Add Diagnostics area in Firefly Entity Viewer (Blaze) with a Thread Stack collection/viewer. (Collect and examine the thread stacks of a running micro-service from Blaze UI)
  • Add command for downloading archived holograms from Blaze. (In the QuantumSpace/Archive area, archive right-click context menu)
  • Full Structured Logging support. Logging template and property metadata are stored/indexed/parsed with proper structure and syntax-highlighting.
  • Configure Prism logging levels per-service/module/action from appsettings.json
  • Add ability to Enable/Disable specific Service in a Quantum Space. (service will auto-enable at next deployment)
  • Add Serilog Sink for Lighthouse (NuGet package)

Improvements

  • Use API methods when available for API explorer (used for swagger documentation)
  • Reactor Debugger will now validate (at startup-time) that Dependency-Injection Service-Provider meets all the FireflyModule and Middleware types' dependency needs.
  • Target .NET SDK 7.0.302
  • Add ILogger Extensions for creating structured logs. (from interpolated strings or using generics)
  • Add CancellationToken Model Binder. (will bind cancellation token from action context)
  • Lighthouse can now Compact/Vacuum sqlite databases. (will auto-compact all databases at startup and logging database after a purge)

Release v1.0.9

Released: April 21, 2023 (4/21/2023)

Improvements

  • Target .NET SDK 7.0.203

Release v1.0.8

Released: March 25, 2023 (3/25/2023)

Bug Fixes

  • Preserve OperationId when building request Path
  • fix P2P connection rejection because of invalid claims signature
  • Fix SignalR connection Null exception when logging level set to Trace
  • Add Microsoft.AspNetCore.Http.IMiddlewareFactory factory in AspAdapter

Features

  • Add JWT information for rate-limiting partitioning key composition
  • Add application data in ray log context (user-id, username, user-email)
  • Add Interop middleware pipeline
  • Add capability to push-only holograms to a QuantumSpace's Archives (without deploying it)
  • Introduce new ConfigMaps file format for Exporting/Importing deploy-time configurations. (can also be used by Deployer)
  • Add IOperationService to Start/Get/List operations from any context
  • Users can now login to Lighthouse using their linked Phoesion Glow Cloud Account. ( cloud services act as the Auth agent for user )
  • Interop : automatically switch to streaming mode for big payloads ( > 8mb )

GUI/Visual Enhancements

  • Add Log Graph in Quantum Space Dashboard

Improvements

  • Target .NET SDK 7.0.202
  • User can now deploy a (self-contained) hologram from a Url source. (using either Blaze or Deployer)
  • Add rate-limiting for PushHub actions
  • Handle sub-namespace Default modules as default.

Optimize

  • Improve Ray Log indexing for Service/Module/Action names filtering

Release v0.3.0

Released: December 15, 2022 (12/15/2022)

Bug Fixes

  • Minor bug fixes
  • Fix swagger hanging when the Action return type is Task (void).

Features

  • Deploy from Archives or new Configurations using WebUI and Blaze Desktop or Blaze Android apps
  • Report unhandled service exceptions as an Incident using a new incident type ServiceException
  • SDK.Testing.ReactorDebugger can now setup Environment Variables and pass/override Configrations to the service under-test.
  • Add partitioned rate-limiters using a user-specific source for key composition, eg. Remote client IP.
  • Add Polymorphic types for Interop call/invoke result object.
  • Add option in Project Editor to mark a service as Private and not allow external requests to reach it.
  • Add [FromServices] attribute to bind Action/Interop Parameters from the DI Service Provider
  • Firefly.k8s.operator can now apply cpu/memory limits on service containers
  • Add StreamFromPrism action result to start streaming directly from Prism. (added sample 1_REST/SampleService2/SampleModule1/StreamFromPrismSample)
  • Add cloud-sync in Blaze for connection profiles
  • Add TTL (Time-To-Live/Timeout) for Operations
  • Add options to specify custom ServiceAccountName and ConfigMaps for service deployments/pod of Firefly.k8s.Operator in kubernetes

GUI/Visual Enhancements

  • New Json View/Editor for Blaze
  • fix Json Editor buttons not visible

Improvements

  • Target .NET SDK 7.0.101
  • Add ability to configure JsonSettings per-request the Glow Rest and SignalR Clients

Optimizations

  • Optimize log processing in Lighthouse. (reduces cpu and memory usage)

Release v0.2.0

Released: November 22, 2022 (11/22/2022)

Breaking Changes

  • Remove unsupported .net 5.0 framework builds.

Features

  • Add options to specify custom ServiceAccountName and ConfigMaps for service deployments/pod of Firefly.k8s.Operator in kubernetes
  • Add support for launching/managing self-contained services in both windows/linux and docker/kubernetes environments/setups.
  • Add middleware scope (instantiation) options. Middleware can now be added either as Singleton or Scoped.
  • Add Rate-Limiting. (note: rate-limiting using middleware requires net7.0)
  • Add ability to build Action/Interop API using interfaces and static interface methods
  • Add [IncludeModule] attribute to include specific firefly modules from another assembly
  • Added Prism config for enabling http3 protocol. (disabled by default)
  • Add Model Binder for Byte[] type and treat it as primitive type with base64 as the (stringified) transfer encoding.
  • Add option to set a Request Body Stream on Glow Rest Client for streaming/uploading.
  • Add SSL Termination for Reverse TCP Proxies in Prism

Improvements

  • Add new generic attributes for [API], [DependentsOn].
  • Upgrade to MsgPack v2.4.35
  • Add .NET 7.0 support and target .NET SDK 7.0.100
  • Infer content-type using accept header for requests that have no content-type specified.
  • Add streaming capability for Form File uploading. (and new sample 25_FileUpload)
  • Improve memory usage in Blaze app
  • Improved spchannel (Glow internal transport) stability.

Optimizations

  • Optimize log processing in Lighthouse. (reduces cpu and memory usage)
  • Optimize hologram action API type resolving. (faster debugger launch)

Samples

  • Add new Rate-Limit sample 26_RateLimit
  • Add new File Upload sample 25_FileUpload

Bug Fixes

  • Fix Api explorer (swaggergen) detection of implicit binding source [FromBody] for complex types
  • Fix Kaleidoscope restart mechanism when detecting network issues.

Release v0.1.0

Released: November 8, 2022 (11/8/2022)

Bug Fixes

  • Preserve ASP hosting content-type for static files (served from middleware)
  • Fix for helper bash scripts argument passing ( changed \(* to "\)@" )
  • Fix default Quantum Space Role for CICD. (Include push/deploy permission)
  • Deployer should not wait for rollout completion on disabled quantum spaces.
  • Fix argument parsing in CLI tools for parameter-less options arguments

Improvements

  • Remove IPC between Firefly<->SrvHost. Simplify supervising and make startup more robust
  • Improve Docker hosted firefly service shutdown and cleanup during boot.
  • Testing SDK can now also detect linux executable with build-in reactor debugger.
  • update base mcr.microsoft.com/dotnet/runtime images

Features

  • New Blaze app
  • Firefly.Operator can pull logs from running Kubernetes Pods. (and present/download them from Blaze)
  • Add IP whitelisting for Prism TCP reverse proxy
  • Add Zero-Downtime Deployments (overlapping deployments) in Kubernetes firefly services.

Release v0.0.304

Released: October 26, 2022 (10/26/2022)

Features

  • Package and distribute Blaze, Hologram.Compiler, Deployer, SwaggerGenCli as Nuget Global Tools.
  • Package and distribute Reactor debugger and Firefly ServiceHost binaries as NuGet package.
  • Add option for Deployer to use a lighthouse Public Key for establishing secure connection.
  • Add Source/Remote IP in ray logs and add ability to search/filter by IP

Release v0.0.303

Released: October 17, 2022 (10/17/2022)

Breaking Changes

  • Rename photon RestRequest->Request (and Rest->Action). Http/Rest in now considered another abstracted protocol of the Photon Action api (like grpc,signalr etc) instead of the main glow photon api.
  • SDK Compatibility Version incremented to 10. (Services with older sdk will not be started)

Bug Fixes

  • Fix lost content-type for large ASP.Net responses

Features

  • Debug Firefly services running in Docker Container using Visual Studio.
  • Add GraphQL sample. (23_GraphQL)
  • Add support for connecting a Websocket on a firefly service Action. (sample 24_WebSockets)
  • Add Firefly Kubernetes Operator (Firefly.k8s.Operator) image to orchestrate firefly service deployments
  • Add section in Glow Project to specify docker image information to be automatically build/pushed by Hologram Compiler during hologram build.
  • Add Output Formatters that allow customized model output formatting for rest responses.
  • Added QuantumSpace-level user Roles. (user ACL)
  • Added [ModuleAlias] attribute to create aliases for firefly modules
  • Add Firefly Service specific AuthKeys for connecting Self-Hosted services.
  • Add switch to hologram compiler to create Self-Contained Holograms, that have all service files (binaries) embedded into the hologram file.
  • Add Firefly.SelfHosted entity flavor to manually host services. (eg. in a container)
  • Add Incident category to describe incident source/topic and to be used (in the future) for notification filtering.
  • Enhance Firefly logging provider so they can be used in conjunction with Serilog

Improvements

  • Target .NET SDK 6.0.402
  • Firefly [Configuration] system can now map/bind configurations from sub-sections.
  • Use Async Scopes when setting up the DI service provider scope in Firefly Services. (using provder.CreateAsyncScope() and IAsyncDispoable)
  • Added Blazor Webassembly + Identity Server authentication sample. (12_Identity)
  • Added project command glow_fix_basehref to fix the <base href=".."/> value of index.html with proper service name during hologram compile.
  • Add Debug Symbols for Glow SDK in nuget packages and Phoesion's public symbol server
  • Improved Entity AuthKeys security, parsing and human-friendliness.
  • Add Kubernetes samples
  • Import/Export Lighthouse Public Key from Blaze connection profile
  • Capture and log Unobserved Task Exceptions

Optimizations

  • Optimize ray logging handling by using per-quantum space buckets. (reduces indices and partitions datasets)

Release v0.0.302

Released: July 7, 2022 (7/7/2022)

Bug Fixes

  • Fix for losing Response Content-Type when switching to streaming mode for Large Responses (>8mb)

Features

  • Add User incidents.
  • Web UI for Lighthouse

Improvements

  • Use Quantum Space Id internally instead of Name as Key.
  • Update to MsgPack v2.3.112

Optimizations

  • Disable default Nagle's algorithm on sockets and handle in SPChannel based on load.

Release v0.0.301

Released: June 4, 2022 (6/4/2022)

Features

  • Add network usage metrics

Improvements

  • Add a user-supplied Description field in Hologram/Deployments.
  • Improve metrics graph zoom/scale.
  • Add time selection for historical metrics filter.

Optimizations

  • Fix windows runtime targeting to select optimized native av_libglesv2.dll library.

Release v0.0.300

Released: May 25, 2022 (5/25/2022)

Breaking Changes

  • New Tunneling protocol to allow tunneling of optimized IFastMessage types. (SPChannel primitive)
  • New Interop API.

Bug Fixes

  • Fix pooled buffer corruption in SPChannel.
  • #3 Unescape newlines in filepath argument.

Features

  • Get service coredump from Blaze.
  • Add Archive area in Blaze to manage archived deployments/holograms.
  • Add ability to Export Hologram and Download Service Files from Lighthouse using Blaze.
  • Service Upgrade policies for deploying new service versions. Use Overlapping method for zero-downtime deployments.
  • Add new Service State and OnHoldingMode callback in FireflyService type to indicate/inform about service changing to Hold Mode. (Hold mode is when a new service has been deployed and current version is being faded-out. Services in Hold mode will be shutdown after hold duration expires)
  • Add ability to transfer domain bindings from one Quantum Space to another.
  • Add directories for connection profiles in Blaze.
  • Add Interop data filtering on remote endpoint for IEnumerable<> and IQueryable<> types. (Added sample code in sample 2_Interop)
  • Add System Incidents to produce system-level (meaning not qSpace-specific) incidents. Admin can view them in the Admin Panel area from Blaze.
  • Preserve data for Entity/Service Metrics. Added a metrics viewer/explorer in Blaze.
  • Add User Devices in Lighthouse/Blaze. User can enable/disable notifications and other settings per-device.
  • Add DeploymentId in ray/logs and Filter UI in Blaze for filtering logs for specific deployment.
  • Add custom environment variable parsing to allow configuring for dictionary/lists using syntax -> PRISM_myDictionary[abc] : "value".

Improvements

  • Target .NET SDK 6.0.300
  • Add Deployment Version that is a per-QuantumSpace incremental versioning. ( as opposed to the internal-use global DeploymentId value )
  • Separate Service realms based on Deployment Version. (Prism/Fireflies photons will be routed to/from entities with the same deployment version)
  • Add Interop response deserialization of IEnumerable, IQueryable, IList, ISet, ICollection, IDictionary to concrete types.

Optimizations

  • Automatically switch to streaming mode for large ASP.Net service response.
  • Detect large-payloads in service responses and automatically switch to streaming mode (prism<-firefly) in the background.
  • Attempt to read some stream content (60kb) and return it immediately with the response message while stream channel (prism<-firefly) is being established (in the background for the rest of the stream).
  • Detect small-streams and degenerate to simple buffer payload response.

Release v0.0.299

Released: March 28, 2022 (3/28/2022)

Features

  • Report prolonged unhealthy service state as incident.
  • Add custom headers for static files. (using the [StaticFileHeader] attribute)
  • Add Response Caching
  • Add file pattern for [RunMiddlewareForStaticFiles]
  • Add script input for Lighthouse CLI
  • Add new templates for Duende.IdentityServer and IdentityServer4

Improvements

  • Better detection of unhealthy services.
  • Better abstraction for Glow.Client.REST and Glow.Client.SignalR.
  • Improvements in TestContainerBuilder for unit testing. (add configurations, serviceMain wiring and dependencies)
  • Target NET SDK 6.0.201
  • Improve HttpResponse adapter to allow use of ASP.Net UseStaticFiles() middleware. (for delivering file from Firefly services)
  • Phoesion.Glow.SwaggerGenCli can now detect ASP.Net api explorer and not inject Glow/Firefly api explorer.

Samples

  • Add a client-side logging sample. (22_ClientSide_Logging)

Release v0.0.298

Released: February 6, 2022 (2/6/2022)

Bug Fixes

  • Fix signature-length mismatch in SPChannel.

Release v0.0.297

Released: February 3, 2022 (2/3/2022)

Features

  • Added Reactor.Debugger as a standalone package.
  • Added binders for DateOnly and TimeOnly primitives.
  • Add support for binding from Params using the [ParamMap(template)] and [FromParams] attributes. Added sample action in 1_REST sample at SampleService1/SampleModule1/Action4.

Improvements

  • Include Phoesion.Glow.Reactor.Debugger.exe debugger in the Reactor package
  • Add sample yaml for setting up and performing system tests as a github action. (sample 20_Testing)

Release v0.0.296

Released: January 26, 2022 (1/26/2022)

Features

  • Add Client-Side Logging system using the [EnableClientLogging] attribute (for an action/module/service). The client can emit log messages for a Ray (log context)
  • Provide packages/images for Reactor
  • Add support for OData. (13_OData sample has been updated)
  • Add deploy-time configuration support (from a json file) for Phoesion.Glow.Hologram.Deployer command line tool.

Improvements

  • Improve SSL Certificate self-signed generation and pfx parsing in Blaze
  • Target .NET SDK 6.0.101

Release v0.0.295

Released: December 6, 2021 (12/6/2021)

Breaking Changes

  • Fully encrypt message headers in SPChannel (transport library).

Improvements

  • Client.SignalR can get non-class type responses.
  • Multi-targeted SDK projects for netstandard2.0, net5.0 and net6.0.

Optimizations

  • Improved thread/memory management for SPChannel.
  • Optimized serializers for Kaleidoscope's heavy-duty types.

Security Patches

  • SPChannel hidden counter and in-place encryption/decryption (avoid copies).
  • SPChannel now has multiple key-sets that rotate/update during the connection.

Release v0.0.294

Released: November 22, 2021 (11/22/2021)

Breaking Changes

  • Redesign logging Enrichment mechanism.
  • Unify ErrorCodes with HttpStatusCodes in PhotonException. (changed SDK Compatibility version to 8)

Bug Fixes

  • Fix swagger ui middleware

Features

  • Detect and serve pre-compressed static files.
  • Count duplicate Incidents and show in Blaze incident report title.
  • Added Response compression in Prism. (Can be configured per qSpace)

Improvements

  • See build output in Blaze for deployment. ( also use rich colored text control for viewing output logs )
  • Generate local developer certificate for both localhost and localhost:16001 domains.
  • Improve memory management for Phoesion.Glow.Prism.
  • Target NET SDK 6.0.100. (All projects switched to net6.0)

Release v0.0.293

Released: October 18, 2021 (10/18/2021)

Bug Fixes

  • Fix Remote Firefly Service Debugger tool

Features

  • Add log filtering in Blaze using log entry's state & exception data

Improvements

  • Glow REST client can now user [FromQuery] to serialize complex object requests

Security Improvements

  • Stronger AuthKeys, fortified connection handshake with more cross-signings and Firefly Service Host process never gets access to secret information/keys (only connection tokens/signatures). (You need to generate and apply new AuthKeys)

Release v0.0.292

Released: September 22, 2021 (9/22/2021)

Bug Fixes

  • Fix [Configuration] JSON traversing for deploy-time configurations

Features

  • Add collection binding for QueryStrings. You can now pass a collection from a query string like so ?items[]=1,2,3 (do not forget to properly escape/encode the uri data)
  • Add json binding for QueryStrings complex types. You can use it in a query string like so ?request={"value":6,"name":"doe"} (do not forget to properly escape/encode the uri data)
  • Add StatusCode for interop photons. Setting a StatusCode other than OK(200) will result in a remote exception at the caller/invoker.
  • Add helper methods OK(),BadRequest(),NotFound(),Forbidden(),InternalServerError() for setting response status code without throwing an exception

Improvements

  • Target .NET SDK 5.0.401
  • Improved self-signed certificate generation/installment

Release v0.0.291

Released: August 23, 2021 (8/23/2021)

Features

  • Add [StaticFileCacheControl] assembly attribute to specify cache-control values for static files.

Release v0.0.290

Released: August 9, 2021 (8/9/2021)

Breaking Changes

  • Added SDK abstractions assemblies. This creates an assembly-level incompatibility and the SDK compatibility version has been increased to v8. (you need to redeploy services with the newer sdk after upgrading your glow setup)

Bug Fixes

  • Fix Request stream consumption handling when combined with asp adaptation layer and enablerewind()

Features

  • Added hierarchical model binders, that allow uniform binding on inner types.
  • Add Blazor WebAssembly service project template in VS Project Templates extension
  • Added Phoesion.Glow.SDK.Blazor package for (static) hosting of web assemblies. (updated 15_Blazor with new method)
  • Added Static File Service type for delivering static files (wwwroot/content) from Prism without running a process or syncing files in Fireflies.
  • Added filtering/rules for Purging logs in a Quantum Space
  • Add [Autowire] DI wiring for Middleware
  • Lift Class/Reference Type restriction for Interop/GlowClient response types. Error will be thrown as exceptions. Returing a null object from an action/interop is considered a valid response
  • Added Prism configuration entry for setting SignalR max message size.
  • Added Forget Entity functionality to remove old/offline entities from the system.

Improvements

  • Update to MsgPack 2.3.0
  • Target .NET 5.0.302

Release v0.0.289

Released: June 16, 2021 (6/16/2021)

Breaking Changes

  • PushHub SignalR must specify as hub name, the PushHubModule path. ( previously it was fixed path /Glow.SignalR )

Features

  • Add In-Maintenance mode for Quantum Spaces
  • Added static index.html per module. If a Module does not have a Default action, Prism will look for a static wwwroot/MODULENAME/index.html file to serve.
  • Added phoesion.glow.firefly.logs.filtered and phoesion.glow.firefly.logs.dump.filtered commands for viewing linux systemd Firefly service logs
  • Add SignalR sample for Python
  • Added strong-typed ServiceTag assignment in GlowClient (REST+SignalR) using extension .WithServiceTag(string value)
  • Add deterministic EntityGUID GUID type generation (derived from EntityId string)
  • Added [SharedAPI] attribute that can be used in api classes to allow multiple non-homogeneous consumers (api implementers)
  • Add [IncludeModules(type)] attribute on ServiceMain class (or in AssemblyInfo.cs) to scan and include FireflyModules from other assemblies

GUI/Visual Enhancements

  • Optimize Logs presentation ui in Blaze when viewing a large volume of log entries

Improvements

  • New deployment method allows greater qSpace isolation
  • Entity's ApplicationHost now uses .UseSystemd() extension
  • Target NET SDK 5.0.301
  • Added PushHubModule in SDK to be used for pushhub modules.
  • PushHub SignalR in prism follows the same pipeline as other requests.
  • Autowire improved deep scanning in module hierarchy to detect base-class private members

Release v0.0.288

Released: June 2, 2021 (6/2/2021)

Bug Fixes

  • Fix cpu spinning bug when trying to consume std out/err from a dead process

Features

  • Add application/octet-stream and text/plain input formatters

Improvements

  • Show Hologram Configurations in hologram viewer
  • Reactor now generates a new development certificate for Default qSpace and Reactor Debugger will install certificate to user store.
  • Target NET 5.0.300 SDK

Release v0.0.287

Released: May 24, 2021 (5/24/2021)

Features

  • Add createdump tool to create coredumps for entity services (phoesion.glow.ENTITY.createdump)
  • Add Users to Quantum Spaces (other than owner or admins)
  • Add X-Frame-Options property in Quantum Space configurations

Improvements

  • Add more API explorer metadata and model building for swagger generator
  • Reconnect Reactor-debugger after losing connection from long inactivity (process stopped in debugger)
  • Target .Net SDK 5.0.203

Release v0.0.286

Released: May 10, 2021 (5/10/2021)

Features

  • Add FileContentResult and BinaryContentWithContentType return types for returning byte[]

Release v0.0.285

Released: April 16, 2021 (4/16/2021)

Improvements

  • Target dotnet sdk 5.0.202

Release v0.0.284

Released: April 12, 2021 (4/12/2021)

Improvements

  • Added IIncidentReportService service abstraction to provide reporting services without the need of an ActionContext
  • Added void-invocation (messaging) for Glow.Client.REST
  • Detect and report misuse of [Action]/[ActionBody]

Release v0.0.283

Released: March 22, 2021 (3/22/2021)

Features

  • Added Phoesion.Glow.SDK.Authentication.ApiKey package to enable simple api-key authentication in firefly services. ( as shown in new sample 11_Authorization_ApiKey )
  • GlowApplicationBuilder can create new builders/apps. Added MapMiddleware to create diverging pipelines based on request's path ( can be used with app.Map(..) )

Improvements

  • Automatic Dockerization changed from experimental to beta. Added container-host P2P routing support
  • REST.Glow.Client can now also understand and use [FromHeaders] and [FromCookies] api

Release v0.0.282

Released: March 18, 2021 (3/18/2021)

Bug Fixes

  • fix .dep.json file not propagating to all tool executables
  • fix erroneous prioritization of Debugger routing, over well-defined service routes. (Debugger routing should be fallback)

Features

  • Added service-fenced API-type resolution for resolving api routes for a specific service. When used with REST.GlowClient you can specify the service name for the api calls, eg GlowClient.FromBaseUri("http://localhost/MyService1")

Release v0.0.281

Released: March 17, 2021 (3/17/2021)

Bug Fixes

  • Fix erroneous prioritization of DefaultModule over asp/dynamic routes

Improvements

  • Enable automatic Containerization for linux. (Add new dockerbridge image for service-host networking)
  • Add Prism configuration for specifying multiple custom SignalR hub routes (default is "/Glow.SignalR")
  • Stronger Glow-Asp coupling (HttpContext)
  • Target NET 5.0.201 sdk.

Release v0.0.280

Released: March 8, 2021 (3/8/2021)

Breaking Changes

  • Glow project file extension changed from .pgproj to .pgproject in order to avoid conflicts with msbuild system
  • ServiceTags must also now be enabled per-action. (to enable just decorate method with same tag attribute as ServiceMain)
  • Disable SignalR by default. Can be enabled in Prism Configs. (remains enabled by-default for reactor/blaze setup)
  • Actions using operations must now declare it using the [Operation] attribute. The url/request must then include the operationId (or noop). For all other action there will be no attempt to read operationid from the url path
  • Use System.Uri for request Url instead of string

Features

  • Add experimental Virtual Quantum Spaces that allows you to include other qspaces as children. Requests to this qspace will be forwarded to the best matching child-qspace service
  • Added ResponseLogger for logging responses
  • Added experimental automatic Containerization of firefly services using docker (can be configured in .pgproject)
  • Allow FireflyModules to work inside an Asp.Net hosted service
  • Add Phoesion.Glow.SDK.Serialization.Newtonsoft.Json package

Release v0.0.279

Released: February 22, 2021 (2/22/2021)

Breaking Changes

  • Service fencing for PushHub clients, now applies to outgoing messages as well.
  • SDK.Firefly package sets RuntimeIdentifier to win-x64 for correct native dll selection when debugging. Output path of build folder will change from bin\debug\net5.0 to bin\debug\net5.0\win-x64.

Bug Fixes

  • fix Asp adaptation layer out-of-context dispose exception.

Features

  • Implement an Asp.Net MVC Api Explorer adapter for Firefly services. This enables the use of swagger (OpenApi) middleware, which is demonstrated in the new sample 105_Swagger.
  • Add support for gRPC server-streaming using IAsyncEnumerable<>. ( View Sample )
  • Add EnvironmentName for quantum space.
  • Set human-friendly name/description for [Configuration] using the [DisplayName] and [Description] attributes.
  • Auto-wire configurations to Modules/Operations using [Configuration] attribute over members.
  • Added binders for byte, sbyte, Guid, Uri, Version.

Improvements

  • Reduce dependencies of Phoesion.Glow.SDK.Firefly and sign dependencies.
  • Reactor will now apply the OneHour timeout only for services deployed from Reactor Debugger.
  • Target NET 5.0.103 sdk.
  • Model binding errors mark ModelState as invalid and can follow model validations pattern.
  • Add user-friendly methods for IInteropInvoker service.

Release v0.0.278

Released: February 1, 2021 (2/1/2021)

Features

  • Added FireflyModule.DisconnectPushClient() and IPushService.DisconnectClient() for disconnecting a PushClient from server-side.
  • Implemented async enumerations using IAsyncEnumerable for both Actions (Rest) and Interop. Using the IAsyncEnumerable<> allows you to asynchronously yield return results back to caller.
  • Added Interop request monitoring and progress reporting. When calling an interop action the .WithProgressReportCB() extension can register your callback in the caller side and the callee can use Context.SubmitProgressUpdate() to submit updates for long running actions.
  • Enable cancellation chaining and propagation for Rest, PushHub, Interop.
  • Added PushClient fencing to restrict a pushclient in the service it was registered in. When enabled, calls outside the service will fail. To lift this restriction you can set RestrictToService=false in the [PushHubEvents] attribute (default is true).
  • Added request monitoring and cancellation propagation capabilities in Kaleidoscope's RPC mechanism.

Improvements

  • Streamlined Operation system. An Operation is now an abstract class (not a module), that uses the auto-routing mechanism as before

Breaking Changes

  • Changed Rest path pattern for path arguments to enable Operation abstraction.
    The new pattern is http://myhost/myservice/mymodule/myaction/OperationId/args. Use "noop" as OperationId value to specify a no operation
  • PushClient fencing changes the default behavior, from full access to service restricted.

Release v0.0.277

Released: 1/18/2021

Features

  • Add Authorization filtering in Prism when using [Authorize(MustProvideAuthorizationHeader=true)]
  • Add [AuthorizeJWT] attribute, a shortcut for setting MustProvideAuthorizationHeader=true, AuthenticationSchemes="Bearer"
  • Added Entity Groups functionality for grouping entities and applying rules (eg. Include/Exclude from Quantum Spaces)

GUI/Visual Enhancements

  • Smooth virtualized panels for Blaze when presenting lists

Improvements

  • Target NET 5.0.102 sdk
  • Generate release notes from git logs
  • Ability to delete Service Groups
  • Changes to Service Groups are applied immediately

Optimizations

  • Refactor Kaleidoscope's RPC mechanism to avoid generic queuing overhead
  • Pooling objects to avoid memory allocation and GC. (photons, collection and other Dtos)
  • Interleaving writes on pipelines/sockets for better IO performance

Release v0.0.173

Released: 11/23/2019

Features

  • Public preview release