Skip to main content
Glama

mcp-google-sheets

flow-generator.ts3.12 kB
import { apId, FlowAction, FlowActionType, FlowStatus, FlowTrigger, FlowTriggerType, FlowVersion, FlowVersionState, PopulatedFlow } from '@activepieces/shared' import { faker } from '@faker-js/faker' export const flowGenerator = { simpleActionAndTrigger(externalId?: string): PopulatedFlow { return flowGenerator.randomizeMetadata(externalId, flowVersionGenerator.simpleActionAndTrigger()) }, randomizeMetadata(externalId: string | undefined, version: Omit<FlowVersion, 'flowId'>): PopulatedFlow { const flowId = apId() const result = { externalId: externalId ?? flowId, version: { ...version, trigger: randomizeTriggerMetadata(version.trigger), flowId, }, schedule: null, status: faker.helpers.enumValue(FlowStatus), id: flowId, projectId: apId(), folderId: apId(), created: faker.date.recent().toISOString(), updated: faker.date.recent().toISOString(), } return result }, } const flowVersionGenerator = { simpleActionAndTrigger(): Omit<FlowVersion, 'flowId'> { return { id: apId(), displayName: faker.animal.dog(), created: faker.date.recent().toISOString(), updated: faker.date.recent().toISOString(), updatedBy: apId(), valid: true, trigger: { ...randomizeTriggerMetadata(generateTrigger()), nextAction: generateAction(), }, state: FlowVersionState.DRAFT, connectionIds: [], agentIds: [], } }, } function randomizeTriggerMetadata(trigger: FlowTrigger): FlowTrigger { return { ...trigger, settings: { ...trigger.settings, propertySettings: { server: faker.internet.url(), port: faker.color.cmyk(), username: faker.internet.userName(), password: faker.internet.password(), }, }, } } function generateAction(): FlowAction { return { type: FlowActionType.PIECE, displayName: faker.hacker.noun(), name: apId(), skip: false, settings: { input: {}, pieceName: faker.helpers.arrayElement(['@activepieces/piece-schedule', '@activepieces/piece-webhook']), pieceVersion: faker.system.semver(), actionName: faker.hacker.noun(), propertySettings: {}, }, valid: true, } } function generateTrigger(): FlowTrigger { return { type: FlowTriggerType.PIECE, displayName: faker.hacker.noun(), name: apId(), settings: { pieceName: faker.helpers.arrayElement(['@activepieces/piece-schedule', '@activepieces/piece-webhook']), pieceVersion: faker.system.semver(), triggerName: faker.hacker.noun(), input: {}, propertySettings: {}, }, valid: true, } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server