Add Activepieces integration for workflow automation

- Add Activepieces fork with SmoothSchedule custom piece
- Create integrations app with Activepieces service layer
- Add embed token endpoint for iframe integration
- Create Automations page with embedded workflow builder
- Add sidebar visibility fix for embed mode
- Add list inactive customers endpoint to Public API
- Include SmoothSchedule triggers: event created/updated/cancelled
- Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-18 22:59:37 -05:00
parent 9848268d34
commit 3aa7199503
16292 changed files with 1284892 additions and 4708 deletions

View File

@@ -0,0 +1,40 @@
import { AppSystemProp } from '@activepieces/server-shared'
import { FastifyOtelInstrumentation } from '@fastify/otel'
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'
import { resourceFromAttributes } from '@opentelemetry/resources'
import { NodeSDK } from '@opentelemetry/sdk-node'
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base'
import { ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions'
import { system } from './app/helper/system/system'
function getServiceName(): string {
const isApp = system.isApp()
const serviceName = isApp ? 'activepieces-api' : 'activepieces-worker'
return serviceName
}
if (system.get(AppSystemProp.OTEL_ENABLED)) {
const traceExporter = new OTLPTraceExporter()
const resource = resourceFromAttributes({
[ATTR_SERVICE_NAME]: getServiceName(),
})
// Configuring the OpenTelemetry Node SDK
const sdk = new NodeSDK({
spanProcessors: [new BatchSpanProcessor(traceExporter)],
resource,
// Adding auto-instrumentations to automatically collect trace data
instrumentations: [
getNodeAutoInstrumentations(),
new FastifyOtelInstrumentation({
servername: getServiceName(),
registerOnInitialization: true,
}),
],
})
// Starting the OpenTelemetry SDK to begin collecting telemetry data
sdk.start()
}