Current Release Features: Difference between revisions
No edit summary Tag: Manual revert |
No edit summary |
||
| Line 1: | Line 1: | ||
== Release Details == | == Release Details == | ||
'''Current Release:''' 6.1.16. | |||
'''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 [https://github.com/lepoco/wpfui 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 === | === Version 6.1.16.2 === | ||
* [[File:TriButtonZinMsgBox.png|thumb| | * [[File:TriButtonZinMsgBox.png|thumb|170px]] | ||
'''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 | * '''Document Scripting''': Message box now available to runtime document scripts via Business Layer | ||
* General tweaks and refinements | * General tweaks and refinements | ||
| Line 33: | Line 72: | ||
* '''Code Cleanup''': Tidied warnings throughout the codebase | * '''Code Cleanup''': Tidied warnings throughout the codebase | ||
=== Version | === Version 6.1.14.1 Release Features: === | ||
Document Manager: | Document Manager: | ||
| Line 60: | Line 100: | ||
** ASB (''In Active Development'') | ** ASB (''In Active Development'') | ||
** Kiwibank (''In Active Development'') | ** Kiwibank (''In Active Development'') | ||
Import File Admin | Import File Admin | ||
| Line 75: | Line 116: | ||
* Additional Code Support to allow for up to 5 Codes | * 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. | ** 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: === | === Coming Soon: === | ||
Organisation Settings: | Organisation Settings: | ||
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)
