Available Now
These features have working implementations in the current release of MIDDAG Account. Each item listed below is functional, tested, and available for use in production environments.
For the complete status overview, see Current Status.
Core Domains
| Domain | Description | Notes |
|---|---|---|
| Organizations | Create, view, and manage B2B customer organizations | Primary tenant boundary |
| Collaborators | Team members with role-based access per organization | Invite flow, role assignment |
| Entitlements | Central lifecycle tracking with unique codes ({CLASS}-{YYYYMM}{SEQ:4d}), four states, six classes | Hub of all downstream records |
| Orders | WooCommerce order integration, linked to organizations and entitlements | Automatic entitlement creation on purchase |
| Invoices | Financial records linked to orders and entitlements | Dual-entity (BR/US) support |
| Tax Invoices (NFSe) | Brazilian tax invoice generation via ISSNet SOAP integration | Brasilia/DF issuer |
| Quotes | Commercial proposals with lifecycle management | Draft, sent, accepted, rejected, expired |
| Licenses | Software license management with site activation tracking | Activation limits, domain binding |
| Contracts | Service agreements with document attachments | Linked to entitlements |
| Environments | Managed hosting environments with parent-child hierarchy | Used by ENV entitlement class |
| Services | Service type definitions (hosting, support, consulting, development) | Linked to entitlement classes |
| Service Requests | Task and ticket tracking against entitlements with SLA monitoring | Jira sync available |
| Documents | File management and distribution linked to entitlements | Downloads, attachments |
| Affiliates | Partner program tracking via SolidAffiliate integration | Commission tracking |
Commerce
| Feature | Description |
|---|---|
| WooCommerce Products | Product catalog with entitlement class mapping |
| Checkout Integration | WooCommerce checkout creates orders and entitlements automatically |
| Payment Status Mapping | Order status changes propagate to entitlement lifecycle |
| Policy Engine | Configurable rules at five levels: global, class, organization, product, entitlement |
| Entitlement Classes | Six classes: Plugin, Environment, Service, Order, Affiliate, Education |
| Multi-Entity Support | Dual legal entity routing for BR and US operations |
| Entitlement Codes | Unique identifiers: {CLASS}-{YYYYMM}{SEQ:4d} format, seven generator classes |
Integrations
| Integration | Direction | What It Does |
|---|---|---|
| Stripe | Inbound | Payment processing, dual-account (BR and US), webhook signature validation |
| HubSpot | Inbound | CRM sync, dual-account (BR and US), deal pipeline integration |
| ISSNet | Outbound | Brazilian tax invoice (NFSe) generation for Brasilia/DF via SOAP |
| Banco Inter | Inbound | Brazilian payment methods: Pix and Boleto, webhook handling |
| Cloudflare | Outbound | D1 database and R2 object storage |
| Jira | Bidirectional | Service request sync, issue and worklog management |
All inbound integrations validate webhook signatures before processing:
- Stripe:
Stripe-Signatureheader viaconstructEvent() - HubSpot:
X-HubSpot-Signatureheader validation - Banco Inter: Certificate-based signature verification
Infrastructure
| Feature | Description |
|---|---|
| REST API v1 | Full API under middag-account/v1 with standard envelope responses |
| Triple Authentication | WordPress nonce, JWT RS256, and WooCommerce consumer keys |
| Organization Boundary | All API queries enforce organization_id isolation via X-Middag-Organization |
| Admin UI | React 19 + Inertia.js v2 admin interface within WordPress |
| Vite Build Pipeline | Vite 6 builds IIFE bundle to assets/dist/app.js |
| Webhook Handling | Inbound webhooks from Stripe, HubSpot, and Banco Inter with signature validation |
| Symfony DI Container | Constructor injection throughout, auto-discovery by class suffix |
| Custom Post Types | All domains stored as middag_{domain} CPTs with show_ui => false |
| Capability Hierarchy | Custom capabilities with user_has_cap filter |
| Cron Delegation | WP Cron thin handlers delegating to domain services |
| i18n | English-first, text domain middag-account, ready for translation |
Admin UI Coverage
| Screen | Status |
|---|---|
| Dashboard | Available |
| Organizations | Available |
| Entitlements | Available |
| All others | Planned |
The admin UI uses a PageContract pipeline with @middag-io/react components, Tailwind v4 styling, and Inertia.js v2 for SPA navigation within WordPress.
What "Available" Means
A feature marked Available has:
- A working domain entity and service layer in pure PHP
- A WordPress repository implementation
- REST API endpoints with authentication and authorization
- Unit test coverage for domain logic
- Integration with the entitlement lifecycle where applicable
Features may still receive enhancements. "Available" means functional and usable, not frozen.