import { createPiece, PieceAuth, Property } from "@activepieces/pieces-framework";
import { PieceCategory } from "@activepieces/shared";
import { createEntity } from "./lib/actions/create-entity";
import { findOrCreateEntity } from "./lib/actions/find-or-create-entity";
import { findEntity } from "./lib/actions/find-entity";
import { entityEvent } from "./lib/triggers/entity-event";
export const base44Auth = PieceAuth.CustomAuth({
description: `Authenticate with your Base44 app using your App ID and API token.
**App ID**: Your Base44 application ID (required)
**Token**: Your Base44 user token or service token (optional but recommended)
You can find these in your Base44 app settings or dashboard.`,
displayName: 'Authentication',
required: true,
props: {
appId: Property.ShortText({
displayName: 'App ID',
description: 'Your Base44 application ID',
required: true,
}),
token: PieceAuth.SecretText({
displayName: 'API Token',
description: 'Your Base44 user token or service token (optional but recommended for full access)',
required: false,
}),
},
});
export const base44 = createPiece({
displayName: "Base44",
description: "Build and manage custom apps with databases and entities",
auth: base44Auth,
minimumSupportedRelease: '0.36.1',
logoUrl: "https://cdn.activepieces.com/pieces/base44.png",
categories: [PieceCategory.DEVELOPER_TOOLS, PieceCategory.PRODUCTIVITY],
authors: ["onyedikachi-david"],
actions: [
createEntity,
findEntity,
findOrCreateEntity,
],
triggers: [
entityEvent,
],
});