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:
@@ -0,0 +1,134 @@
|
||||
import { Static, Type } from '@sinclair/typebox'
|
||||
import { ApMultipartFile } from '../../common'
|
||||
import { ApEdition } from '../../flag/flag'
|
||||
import { PackageType, PieceCategory } from '../piece'
|
||||
|
||||
export const EXACT_VERSION_PATTERN = '^[0-9]+\\.[0-9]+\\.[0-9]+$'
|
||||
export const EXACT_VERSION_REGEX = new RegExp(EXACT_VERSION_PATTERN)
|
||||
const VERSION_PATTERN = '^([~^])?[0-9]+\\.[0-9]+\\.[0-9]+$'
|
||||
|
||||
export const ExactVersionType = Type.String({
|
||||
pattern: EXACT_VERSION_PATTERN,
|
||||
})
|
||||
export const VersionType = Type.String({
|
||||
pattern: VERSION_PATTERN,
|
||||
})
|
||||
export enum SuggestionType {
|
||||
ACTION = 'ACTION',
|
||||
TRIGGER = 'TRIGGER',
|
||||
ACTION_AND_TRIGGER = 'ACTION_AND_TRIGGER',
|
||||
}
|
||||
export enum PieceSortBy {
|
||||
NAME = 'NAME',
|
||||
UPDATED = 'UPDATED',
|
||||
CREATED = 'CREATED',
|
||||
POPULARITY = 'POPULARITY',
|
||||
}
|
||||
|
||||
export enum PieceOrderBy {
|
||||
ASC = 'ASC',
|
||||
DESC = 'DESC',
|
||||
}
|
||||
|
||||
export const GetPieceRequestWithScopeParams = Type.Object({
|
||||
name: Type.String(),
|
||||
scope: Type.String(),
|
||||
})
|
||||
|
||||
export type GetPieceRequestWithScopeParams = Static<typeof GetPieceRequestWithScopeParams>
|
||||
|
||||
|
||||
export const GetPieceRequestParams = Type.Object({
|
||||
name: Type.String(),
|
||||
})
|
||||
|
||||
export type GetPieceRequestParams = Static<typeof GetPieceRequestParams>
|
||||
|
||||
export const ListPiecesRequestQuery = Type.Object({
|
||||
release: Type.Optional(ExactVersionType),
|
||||
includeTags: Type.Optional(Type.Boolean()),
|
||||
includeHidden: Type.Optional(Type.Boolean()),
|
||||
edition: Type.Optional(Type.Enum(ApEdition)),
|
||||
searchQuery: Type.Optional(Type.String()),
|
||||
sortBy: Type.Optional(Type.Enum(PieceSortBy)),
|
||||
orderBy: Type.Optional(Type.Enum(PieceOrderBy)),
|
||||
categories: Type.Optional(Type.Array(Type.Enum(PieceCategory))),
|
||||
suggestionType: Type.Optional(Type.Enum(SuggestionType)),
|
||||
locale: Type.Optional(Type.String()),
|
||||
})
|
||||
|
||||
export type ListPiecesRequestQuery = Static<typeof ListPiecesRequestQuery>
|
||||
|
||||
|
||||
export const RegistryPiecesRequestQuery = Type.Object({
|
||||
release: ExactVersionType,
|
||||
edition: Type.Enum(ApEdition),
|
||||
})
|
||||
|
||||
export type RegistryPiecesRequestQuery = Static<typeof RegistryPiecesRequestQuery>
|
||||
|
||||
export const ListVersionRequestQuery = Type.Object({
|
||||
release: ExactVersionType,
|
||||
name: Type.String(),
|
||||
edition: Type.Optional(Type.Enum(ApEdition)),
|
||||
})
|
||||
|
||||
export type ListVersionRequestQuery = Static<typeof ListVersionRequestQuery>
|
||||
|
||||
export const GetPieceRequestQuery = Type.Object({
|
||||
version: Type.Optional(VersionType),
|
||||
projectId: Type.Optional(Type.String()),
|
||||
locale: Type.Optional(Type.String()),
|
||||
})
|
||||
|
||||
export const ListVersionsResponse = Type.Record(ExactVersionType, Type.Object({}))
|
||||
export type ListVersionsResponse = Static<typeof ListVersionsResponse>
|
||||
|
||||
export type GetPieceRequestQuery = Static<typeof GetPieceRequestQuery>
|
||||
|
||||
export const PieceOptionRequest = Type.Object({
|
||||
pieceName: Type.String({}),
|
||||
pieceVersion: VersionType,
|
||||
actionOrTriggerName: Type.String({}),
|
||||
propertyName: Type.String({}),
|
||||
flowId: Type.String(),
|
||||
flowVersionId: Type.String(),
|
||||
input: Type.Any({}),
|
||||
searchValue: Type.Optional(Type.String()),
|
||||
})
|
||||
|
||||
export type PieceOptionRequest = Static<typeof PieceOptionRequest>
|
||||
|
||||
export enum PieceScope {
|
||||
PLATFORM = 'PLATFORM',
|
||||
// TODO: all users have their own platform, so we can remove this
|
||||
// @deprecated
|
||||
PROJECT = 'PROJECT',
|
||||
|
||||
}
|
||||
|
||||
export const AddPieceRequestBody = Type.Union([
|
||||
Type.Object({
|
||||
packageType: Type.Literal(PackageType.ARCHIVE),
|
||||
scope: Type.Literal(PieceScope.PLATFORM),
|
||||
pieceName: Type.String({
|
||||
minLength: 1,
|
||||
}),
|
||||
pieceVersion: ExactVersionType,
|
||||
pieceArchive: ApMultipartFile,
|
||||
}, {
|
||||
title: 'Private Piece',
|
||||
}),
|
||||
Type.Object({
|
||||
packageType: Type.Literal(PackageType.REGISTRY),
|
||||
scope: Type.Literal(PieceScope.PLATFORM),
|
||||
pieceName: Type.String({
|
||||
minLength: 1,
|
||||
}),
|
||||
pieceVersion: ExactVersionType,
|
||||
}, {
|
||||
title: 'NPM Piece',
|
||||
}),
|
||||
])
|
||||
|
||||
export type AddPieceRequestBody = Static<typeof AddPieceRequestBody>
|
||||
Reference in New Issue
Block a user