Current Release Features: Difference between revisions

From Zinform
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 5: Line 5:
=== Version 6.3.0.0 ===
=== Version 6.3.0.0 ===


* '''Web Services & Scheduled Services Module''' (New):
* '''Web Services and Scheduled Services Module''' (New):
** Full RESTful data API (''GET/POST/PUT/DELETE'') with configurable entity endpoints
** Full RESTful data API (''GET/POST/PUT/DELETE'') with configurable entity endpoints
** Scripted API system — custom C# endpoints compiled at runtime via Roslyn
** Scripted API system — custom C# endpoints compiled at runtime via Roslyn
Line 12: Line 12:
** Anonymous endpoint support for public-facing integrations
** Anonymous endpoint support for public-facing integrations
** Built on .NET 10
** Built on .NET 10
** See [[#Web Services & Scheduled Services]] section below for full details
** See [[#Web Services and Scheduled Services]] section below for full details


=== Version 6.2.0.2 ===
=== Version 6.2.0.2 ===
Line 29: Line 29:
* '''Debug Email Mode''': Added debug email mode for troubleshooting email delivery
* '''Debug Email Mode''': Added debug email mode for troubleshooting email delivery
* '''Department User Fields''': Additional user fields available at department level
* '''Department User Fields''': Additional user fields available at department level
* '''UI & Wizard Options''': General UI and wizard option refinements
* '''UI and Wizard Options''': General UI and wizard option refinements
* '''Supplier Category/Type Support''': Added supplier category and type classification with UI improvements
* '''Supplier Category/Type Support''': Added supplier category and type classification with UI improvements
* '''Other Party Contact Methods''': Refactored Other Party contact methods with ComboBox support
* '''Other Party Contact Methods''': Refactored Other Party contact methods with ComboBox support
Line 117: Line 117:
** Eg: Could be used to track Registration Number of a Vehicle to A Department, Trailers, ID Numbers etc for AP Invoices etc.
** Eg: Could be used to track Registration Number of a Vehicle to A Department, Trailers, ID Numbers etc for AP Invoices etc.


== Web Services & Scheduled Services ==
== Web Services and Scheduled Services ==


ASP.NET Core Web API built on .NET 10, hosted as a Windows Service, providing external API access to Zinform data and a runtime scripting platform for custom integrations and scheduled tasks.
ASP.NET Core Web API built on .NET 10, hosted as a Windows Service, providing external API access to Zinform data and a runtime scripting platform for custom integrations and scheduled tasks.
Line 125: Line 125:
Full CRUD RESTful API with configurable entity endpoints:
Full CRUD RESTful API with configurable entity endpoints:


* '''Entity Endpoints''': Expose any Zinform database entity via configurable route aliases (e.g. <code>/api/data/customers</code>, <code>/api/data/invoices</code>)
* '''Entity Endpoints''': Expose any Zinform database entity via configurable route aliases (e.g. /api/data/customers, /api/data/invoices)
* '''Per-Endpoint Access Control''': Each endpoint individually configurable for Read, Create, Update, and Delete permissions
* '''Per-Endpoint Access Control''': Each endpoint individually configurable for Read, Create, Update, and Delete permissions
* '''Paging & Sorting''': Built-in pagination with configurable max page sizes, multi-field ordering (ascending/descending)
* '''Paging and Sorting''': Built-in pagination with configurable max page sizes, multi-field ordering (ascending/descending)
* '''Filtering''': Query string filters (<code>?filter.Name=Smith</code>) and advanced POST query with operators including eq, neq, gt, gte, lt, lte, contains, startswith, endswith, between, in, isnull, isnotnull
* '''Filtering''': Query string filters (e.g. ?filter.Name=Smith) and advanced POST query with operators including eq, neq, gt, gte, lt, lte, contains, startswith, endswith, between, in, isnull, isnotnull
* '''Nested Filter Logic''': AND/OR filter groups with nested sub-groups for complex queries
* '''Nested Filter Logic''': AND/OR filter groups with nested sub-groups for complex queries
* '''Field Selection''': Request specific fields to reduce payload size
* '''Field Selection''': Request specific fields to reduce payload size
* '''Endpoint Discovery''': <code>GET /api/data</code> lists all available enabled endpoints with their permissions
* '''Endpoint Discovery''': GET /api/data lists all available enabled endpoints with their permissions


=== Scripted API ===
=== Scripted API ===
Line 137: Line 137:
Custom API endpoints powered by Roslyn C# runtime compilation:
Custom API endpoints powered by Roslyn C# runtime compilation:


* '''Custom Endpoints''': Define custom routes (e.g. <code>/api/script/myintegration</code>) with C# script bodies compiled and cached at runtime
* '''Custom Endpoints''': Define custom routes (e.g. /api/script/myintegration) with C# script bodies compiled and cached at runtime
* '''ImportScripter Pattern''': Scripts follow the same <code>ImportScripter</code> class pattern used in the Zinform desktop application for consistency
* '''ImportScripter Pattern''': Scripts follow the same ImportScripter class pattern used in the Zinform desktop application for consistency
* '''Full Business Layer Access''': Scripts receive a <code>BusinessLayerMain</code> instance providing full access to all Zinform business logic
* '''Full Business Layer Access''': Scripts receive a BusinessLayerMain instance providing full access to all Zinform business logic
* '''Request/Response Model''': Custom <code>ZinHttpRequest</code> / <code>ZinHttpResponse</code> objects with access to query parameters, JSON body, headers, and authenticated user identity
* '''Request/Response Model''': Custom ZinHttpRequest / ZinHttpResponse objects with access to query parameters, JSON body, headers, and authenticated user identity
* '''Per-Method Control''': Each scripted endpoint configurable for specific HTTP methods (GET, POST, PUT, DELETE)
* '''Per-Method Control''': Each scripted endpoint configurable for specific HTTP methods (GET, POST, PUT, DELETE)
* '''Script Caching''': Compiled scripts are cached with SHA256 hash-based invalidation — scripts recompile automatically when updated
* '''Script Caching''': Compiled scripts are cached with SHA256 hash-based invalidation — scripts recompile automatically when updated
* '''Endpoint Discovery''': <code>GET /api/script</code> lists all available scripted endpoints with descriptions
* '''Endpoint Discovery''': GET /api/script lists all available scripted endpoints with descriptions


=== Script Execution API ===
=== Script Execution API ===
Line 149: Line 149:
Direct script execution endpoint for ad-hoc or remote scripting:
Direct script execution endpoint for ad-hoc or remote scripting:


* '''Remote Script Execution''': POST C# scripts to <code>/api/script/execute</code> for server-side execution
* '''Remote Script Execution''': POST C# scripts to /api/script/execute for server-side execution
* '''ZinParameters Support''': Pass key/value parameters to scripts, matching the desktop runner interface
* '''ZinParameters Support''': Pass key/value parameters to scripts, matching the desktop runner interface
* '''Timeout Control''': Configurable execution timeout (up to 5 minutes) with cancellation support
* '''Timeout Control''': Configurable execution timeout (up to 5 minutes) with cancellation support
Line 163: Line 163:
* '''Roslyn Script Execution''': Each service runs a C# script body with full Business Layer access
* '''Roslyn Script Execution''': Each service runs a C# script body with full Business Layer access
* '''Run Tracking''': Automatic tracking of run count, fail count, last run time, last output/error, and next scheduled run
* '''Run Tracking''': Automatic tracking of run count, fail count, last run time, last output/error, and next scheduled run
* '''User Data Fields''': Five custom user data fields (User0–User4) per service definition for script-accessible configuration
* '''User Data Fields''': Five custom user data fields (User0-User4) per service definition for script-accessible configuration


'''Trigger Types:'''
'''Trigger Types:'''
Line 170: Line 170:
** Interval in seconds (e.g. every 5 minutes)
** Interval in seconds (e.g. every 5 minutes)
** Optional initial delay before first execution
** Optional initial delay before first execution
** Business hours window (e.g. only fire between 8am–6pm)
** Business hours window (e.g. only fire between 8am-6pm)
* '''Folder Watch Trigger''': Monitor a folder for new or changed files and trigger service execution automatically
* '''Folder Watch Trigger''': Monitor a folder for new or changed files and trigger service execution automatically
* '''Email Trigger''': Monitor an inbox for incoming emails and trigger service execution on receipt
* '''Email Trigger''': Monitor an inbox for incoming emails and trigger service execution on receipt
Line 178: Line 178:
Multi-provider authentication supporting:
Multi-provider authentication supporting:


* '''Local JWT''': Username/password authentication via <code>/api/auth/login</code>
* '''Local JWT''': Username/password authentication via /api/auth/login
* '''Microsoft Entra ID''': Azure AD / Entra ID OAuth2
* '''Microsoft Entra ID''': Azure AD / Entra ID OAuth2
* '''Google OAuth''': Google account authentication
* '''Google OAuth''': Google account authentication
* '''Generic OAuth''': Configurable custom OAuth2 provider
* '''Generic OAuth''': Configurable custom OAuth2 provider
* '''API Key''': Static API key authentication via <code>X-Api-Key</code> header for legacy/simple integrations
* '''API Key''': Static API key authentication via X-Api-Key header for legacy/simple integrations
* '''Anonymous''': Unauthenticated access for public endpoints
* '''Anonymous''': Unauthenticated access for public endpoints
* '''Per-Endpoint Auth Schemes''': Each data and scripted endpoint can specify which authentication schemes are accepted
* '''Per-Endpoint Auth Schemes''': Each data and scripted endpoint can specify which authentication schemes are accepted

Latest revision as of 20:57, 12 March 2026

Release Details

Current Release: 6.3.0.0

Version 6.3.0.0

  • Web Services and Scheduled Services Module (New):
    • Full RESTful data API (GET/POST/PUT/DELETE) with configurable entity endpoints
    • Scripted API system — custom C# endpoints compiled at runtime via Roslyn
    • Scheduled background services with orchestrated lifecycle management
    • Subscriber access control and per-endpoint authentication
    • Anonymous endpoint support for public-facing integrations
    • Built on .NET 10
    • See #Web Services and Scheduled Services section below for full details

Version 6.2.0.2

  • Department Enhancements: Improved department code handling and error reporting
  • BCTI Document Function: Updated document function to better handle Buyer Created Tax Invoice generation
  • Chromium Removal: Removed embedded Chromium dependency; critical software versions bumped

Version 6.2.0.0

  • SyncFusion Removal: Removed SyncFusion component library
    • Migrated GridView controls to WPF DataGrid
    • Integrated WPFUI library for modern UI components
    • Updated NumberBox usage to align with new library
    • Updated GemBox license keys
  • Debug Email Mode: Added debug email mode for troubleshooting email delivery
  • Department User Fields: Additional user fields available at department level
  • UI and Wizard Options: General UI and wizard option refinements
  • Supplier Category/Type Support: Added supplier category and type classification with UI improvements
  • Other Party Contact Methods: Refactored Other Party contact methods with ComboBox support
  • Statement Aging: Refactored statement aging logic for out-of-period allocations
  • Registry Item Handling: Refactored AddRegistryItem to return BoolReturn with status for improved error handling

Version 6.1.16.3 Pre Release

  • Graph Updates: Updated graph components
  • Warning Cleanup: General codebase warning cleanup and tidy-up

Version 6.1.16.2

ZinMessageBox: Added custom message box component for runtime scripting to allow for custom 'tri button' layouts and new custom icons.

  • Document Scripting: Message box now available to runtime document scripts via Business Layer
  • General tweaks and refinements
  • Statement Generation Improvements:
    • Major SQL and CTE optimizations for faster, more accurate financial statements
    • Fixed transaction allocation logic to properly handle bidirectional allocations
    • Improved running balance calculations for aged arrears
    • Enhanced deduplication strategies to prevent duplicate transactions in statements
    • Better handling of current month transactions vs historical aging buckets

Version 6.1.16.1

  • Progress Bar Improvements: Updated progress bar to handle child loops and display status correctly for better user feedback during long operations (Allows for more complex looping within runtime scripting)

Version 6.1.16.0

  • Departments Launch: Added department management functionality (moved away from Zinform 5)
  • BCTI Enhancements: Changes to enhance BCTI (Buyer Created Tax Invoice) Generation
  • Document Functions: Updated and improved document functions
  • Customer/Supplier Display Fixes: Fixed display of customers and suppliers for statements and documents
  • License Management Fix: Fixed opening organization license on first requirement
  • Connection Handling: Fixed cancel connection functionality

Version 6.1.15.0

  • General Document Wizard Enhancements: Added features to publish general documents with improved functionality
  • Invoice Statement Support: Updates to support comprehensive invoice statements
  • Code Cleanup: Tidied warnings throughout the codebase

Version 6.1.14.1 Release Features:

Document Manager:

  • Advanced Scripting via new Business Layer.

User Manager:

  • Additional Roles and Permissions available to the new Business Layer

Organisation Settings:

  • Logo
  • Postal and Physical Address for Documents
  • Default Bank Account
  • Advanced Invoice Settings
  • Microsoft Graph Email Sending via Entra App.
  • SMTP Settings

Bank Manager:

  • Management of Bank Accounts
  • Bank Account Import Settings
    • ANZ
    • BNZ
    • Westpac
    • ASB (In Active Development)
    • Kiwibank (In Active Development)

Import File Admin

  • Generic CSV Import To allow for CSV/XLSX/JSON/XML file import to AP Invoice.

Import PDF Admin (AI Enabled - Special License Required)

  • Reading of PDF AP Invoices Direct to AP Batch.
  • Scripting to Control Every Aspect.
  • Multi Page, Complex or Simple Invoices are handled quickly saving time on data import.

Departments Admin

  • Management of Departments away from Zinform 5
  • Additional Code Support to allow for up to 5 Codes
    • Eg: Could be used to track Registration Number of a Vehicle to A Department, Trailers, ID Numbers etc for AP Invoices etc.

Web Services and Scheduled Services

ASP.NET Core Web API built on .NET 10, hosted as a Windows Service, providing external API access to Zinform data and a runtime scripting platform for custom integrations and scheduled tasks.

Data API

Full CRUD RESTful API with configurable entity endpoints:

  • Entity Endpoints: Expose any Zinform database entity via configurable route aliases (e.g. /api/data/customers, /api/data/invoices)
  • Per-Endpoint Access Control: Each endpoint individually configurable for Read, Create, Update, and Delete permissions
  • Paging and Sorting: Built-in pagination with configurable max page sizes, multi-field ordering (ascending/descending)
  • Filtering: Query string filters (e.g. ?filter.Name=Smith) and advanced POST query with operators including eq, neq, gt, gte, lt, lte, contains, startswith, endswith, between, in, isnull, isnotnull
  • Nested Filter Logic: AND/OR filter groups with nested sub-groups for complex queries
  • Field Selection: Request specific fields to reduce payload size
  • Endpoint Discovery: GET /api/data lists all available enabled endpoints with their permissions

Scripted API

Custom API endpoints powered by Roslyn C# runtime compilation:

  • Custom Endpoints: Define custom routes (e.g. /api/script/myintegration) with C# script bodies compiled and cached at runtime
  • ImportScripter Pattern: Scripts follow the same ImportScripter class pattern used in the Zinform desktop application for consistency
  • Full Business Layer Access: Scripts receive a BusinessLayerMain instance providing full access to all Zinform business logic
  • Request/Response Model: Custom ZinHttpRequest / ZinHttpResponse objects with access to query parameters, JSON body, headers, and authenticated user identity
  • Per-Method Control: Each scripted endpoint configurable for specific HTTP methods (GET, POST, PUT, DELETE)
  • Script Caching: Compiled scripts are cached with SHA256 hash-based invalidation — scripts recompile automatically when updated
  • Endpoint Discovery: GET /api/script lists all available scripted endpoints with descriptions

Script Execution API

Direct script execution endpoint for ad-hoc or remote scripting:

  • Remote Script Execution: POST C# scripts to /api/script/execute for server-side execution
  • ZinParameters Support: Pass key/value parameters to scripts, matching the desktop runner interface
  • Timeout Control: Configurable execution timeout (up to 5 minutes) with cancellation support
  • Structured Results: Returns success/failure status, output, error detail, and execution duration

Scheduled Background Services

Orchestrated background task system driven by database-stored service definitions:

  • Service Orchestrator: Master hosted service that manages the lifecycle of all background workers
  • Dynamic Configuration: Service definitions stored in the database — add, update, enable, or disable services without restarting the application
  • Automatic Change Detection: Polls DB every 60 seconds for definition changes; workers are started, stopped, or restarted as needed using RowVersion tracking
  • Roslyn Script Execution: Each service runs a C# script body with full Business Layer access
  • Run Tracking: Automatic tracking of run count, fail count, last run time, last output/error, and next scheduled run
  • User Data Fields: Five custom user data fields (User0-User4) per service definition for script-accessible configuration

Trigger Types:

  • Timer Trigger: Configurable interval-based triggers with:
    • Interval in seconds (e.g. every 5 minutes)
    • Optional initial delay before first execution
    • Business hours window (e.g. only fire between 8am-6pm)
  • Folder Watch Trigger: Monitor a folder for new or changed files and trigger service execution automatically
  • Email Trigger: Monitor an inbox for incoming emails and trigger service execution on receipt

Authentication

Multi-provider authentication supporting:

  • Local JWT: Username/password authentication via /api/auth/login
  • Microsoft Entra ID: Azure AD / Entra ID OAuth2
  • Google OAuth: Google account authentication
  • Generic OAuth: Configurable custom OAuth2 provider
  • API Key: Static API key authentication via X-Api-Key header for legacy/simple integrations
  • Anonymous: Unauthenticated access for public endpoints
  • Per-Endpoint Auth Schemes: Each data and scripted endpoint can specify which authentication schemes are accepted

Subscriber Access Control

  • Subscriber Middleware: Validates subscriber keys and stores subscriber context for downstream use
  • Per-Endpoint Subscriber Permissions: Subscribers can be granted access to specific data endpoints and scripted endpoints independently
  • Encrypted Subscriber Keys: Subscriber authentication keys with encryption support

Administration

  • Admin Console: Localhost-only admin interface for service management
  • Swagger / OpenAPI: Full Swagger UI documentation with all authentication schemes documented
  • Service Definition Admin: Admin UI in Zinform desktop for managing service definitions, scripted endpoints, API endpoints, and request metrics
  • Request Metrics: Built-in request tracking for monitoring API activity
  • Windows Service Hosting: Runs as a Windows Service or under IIS

Coming Soon:

Organisation Settings:

  • IMAP Settings (Coming Soon)

CRM Module (Coming Soon)

Email Processing (Coming Soon)