Adds test harnesses for tenant isolation, TypeORM/MikroORM parity, persistence invariants and idempotency; startup validation for DB config; Nx plugin/core boundary rules; a fresh-database migration smoke test; and a correlation id carried from HTTP requests into docs queue jobs and logs. Testing (packages/core/src/lib/core/testing): - tenant-isolation: an in-memory tenant-aware repository, fixtures and strict assertions (a non-empty page, every row in the caller's tenant). Applied to EmployeeService and OrganizationProjectService. - orm-conformance and persistence-invariants: suites that run the same checks under TypeORM and MikroORM (run-both-orms.sh uses yarn nx). - idempotency: assertion helpers and specs for token cleanup (positive control), employee notifications and the Zapier timer webhook. - database/migration-smoke.spec.ts: runs the full migration chain on a fresh better-sqlite3 database. It is excluded from the default core jest run; run it with `nx run core:test-migration-smoke`. Idempotency: - EmployeeNotificationService.create() takes an opt-in `absorbRedelivery`. With it set, an identical unread, unarchived notification under 60 s old (same receiver, entity, type, sender, title and message) is returned instead of inserted, and a missing key or a failed lookup inserts as usual. The event handler does not enable it (the in-process EventBus never redelivers), so every caller inserts one row per event as before. - ZapierWebhookService skips resending a webhook that already succeeded for the same subscription, action and time log within 5 minutes. The key is reserved while in flight, failed deliveries stay retryable, pruning stops at the first unexpired entry, and the cache is capped at 10,000 entries. Config (packages/config): - An unknown DB_TYPE fails fast with the list of supported values; an empty DB_TYPE still means better-sqlite3; mongodb throws an Error. - Pool and timeout variables are parsed with Number.parseInt semantics, only for postgres and mysql. They throw only where tarn already refused to start and warn otherwise. SQLite ignores them and still prints the startup values. Observability: - RequestContextMiddleware accepts an inbound x-correlation-id of 1-128 visible ASCII characters (otherwise it generates a UUIDv4) and echoes it on the response. CORS allows and exposes X-Correlation-Id. RequestContext.currentCorrelationId() is added. - The docs queue carries the correlation id through job payloads (including bulk reindex) into pipeline outcome, error, dead-letter and enqueue-failure logs. Boundaries and build: - Every project gets a type tag. The ESLint depConstraints stop type:core depending on plugins, and plugins may depend only on core, shared libs and the known extension points (ai-chat, job-proposal, integration-ai, job-*-ui). - core declares @gauzy/scheduler (package.json and implicitDependencies); the webapp Dockerfile copies scheduler's package.json. - The integration-zapier jest config can import @gauzy/core (transformIgnorePatterns, allowJs, isolatedModules). - Fixes the stale @nrwl/nx eslint-disable id in the e2e roles-permissions steps and the broken @gauzy/core mock in the docs document-scope spec. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gauzy/plugin-integration-make-com
This library was generated with Nx.
Overview
The Integration Make.com plugin is a Gauzy plugin that provides a user-friendly interface for integrating Make.com with the Gauzy platform. This integration allows you to automate workflows and connect Gauzy with other applications through Make.com's powerful automation platform.
Features
- OAuth2 authentication with Make.com
- Webhook integration for real-time event notifications
- Timer event synchronization
- Organization and tenant-level integration settings
- Secure credential management
Integration Settings
The plugin supports the following integration settings:
-
Webhook Configuration
webhookUrl: The Make.com webhook URL for receiving eventsisEnabled: Toggle to enable/disable the integration
-
OAuth Settings
client_id: Your Make.com application client IDclient_secret: Your Make.com application client secretaccess_token: OAuth access token (automatically managed)refresh_token: OAuth refresh token (automatically managed)
Setup Instructions
-
Create a Make.com Application
- Go to Make.com and create a new application
- Configure the OAuth redirect URL:
{API_BASE_URL}/api/integration/make-com/oauth/callback - Note down your client ID and client secret
-
Install the Plugin
npm install @gauzy/plugin-integration-make-com # or yarn add @gauzy/plugin-integration-make-com -
Configure Integration Settings
- Navigate to your Gauzy instance's integration settings
- Select Make.com integration
- Enter your Make.com client ID and client secret
- Authorize the integration through the OAuth flow
- Configure your webhook URL from Make.com
-
Environment Variables The following environment variables can be configured:
GAUZY_MAKE_BASE_URL: Make.com API base URL (default: https://www.make.com)GAUZY_MAKE_POST_INSTALL_URL: URL to redirect after installationGAUZY_MAKE_REDIRECT_URL: OAuth redirect URL
Building
Run yarn nx build plugin-integration-make-com to build the library.
Running unit tests
Run yarn nx test plugin-integration-make-com to execute the unit tests via Jest.
Publishing
After building your library with yarn nx build plugin-integration-make-com, go to the dist folder cd dist/packages/plugins/integration-make-com and run npm publish.
Security
- All sensitive credentials are encrypted before storage
- OAuth tokens are automatically refreshed when expired
- Integration settings are scoped to specific tenants and organizations
Support
For issues and feature requests, please visit our GitHub repository.