Current Release Features: Difference between revisions
No edit summary Tags: Reverted Visual edit: Switched |
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 | * '''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 | ** 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 | * '''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 | == 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. | * '''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 | * '''Paging and Sorting''': Built-in pagination with configurable max page sizes, multi-field ordering (ascending/descending) | ||
* '''Filtering''': Query string filters ( | * '''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''': | * '''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. | * '''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 Pattern''': Scripts follow the same ImportScripter class pattern used in the Zinform desktop application for consistency | ||
* '''Full Business Layer Access''': Scripts receive a | * '''Full Business Layer Access''': Scripts receive a BusinessLayerMain instance providing full access to all Zinform business logic | ||
* '''Request/Response Model''': Custom | * '''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''': | * '''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 | * '''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 ( | * '''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 | ** 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 | * '''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 | * '''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)
