@friggframework/core 2.0.0--canary.703.12b980b.0 → 2.0.0--canary.707.df80bfd.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/CLAUDE.md +28 -0
- package/README.md +105 -0
- package/application/commands/integration-commands.js +20 -10
- package/application/commands/scheduler-commands.js +11 -7
- package/application/commands/user-commands.js +17 -5
- package/application/index.js +6 -2
- package/core/Worker.js +31 -7
- package/core/create-handler.js +9 -0
- package/credential/repositories/credential-repository-documentdb.js +34 -0
- package/credential/repositories/credential-repository-interface.js +15 -0
- package/credential/repositories/credential-repository-mongo.js +23 -0
- package/credential/repositories/credential-repository-postgres.js +28 -0
- package/credential/use-cases/credential-operations-for-user.js +202 -0
- package/credential/use-cases/reauthorize-credential-for-user.js +73 -0
- package/database/config.js +48 -24
- package/database/documentdb-encryption-service.js +9 -22
- package/database/documentdb-utils.js +2 -2
- package/database/encryption/README.md +78 -14
- package/database/encryption/documentdb-encryption-service.md +78 -1
- package/database/encryption/encryption-config.js +219 -0
- package/database/encryption/encryption-schema-registry.js +121 -24
- package/database/encryption/field-encryption-service.js +69 -5
- package/database/encryption/integration-mapping-encryption.js +1 -1
- package/database/encryption/test-support/fake-ciphertext.js +15 -0
- package/database/organization-where.js +18 -0
- package/database/prisma.js +15 -38
- package/database/unique-violation.js +25 -0
- package/database/use-cases/check-encryption-health-use-case.js +43 -52
- package/errors/index.js +0 -4
- package/extensions/bootstrap-runner.js +43 -0
- package/extensions/extension-loader.js +230 -0
- package/extensions/index.js +44 -0
- package/extensions/initialize-app.js +123 -0
- package/extensions/prisma-composer.js +270 -0
- package/extensions/route-mounter.js +103 -0
- package/extensions/schema-composer.js +188 -0
- package/generated/prisma-mongodb/edge.js +33 -42
- package/generated/prisma-mongodb/index-browser.js +30 -39
- package/generated/prisma-mongodb/index.d.ts +3187 -2005
- package/generated/prisma-mongodb/index.js +33 -42
- package/generated/prisma-mongodb/package.json +1 -1
- package/generated/prisma-mongodb/schema.prisma +86 -59
- package/generated/prisma-mongodb/wasm.js +33 -42
- package/generated/prisma-postgresql/edge.js +33 -42
- package/generated/prisma-postgresql/index-browser.js +30 -39
- package/generated/prisma-postgresql/index.d.ts +3380 -2177
- package/generated/prisma-postgresql/index.js +33 -42
- package/generated/prisma-postgresql/package.json +1 -1
- package/generated/prisma-postgresql/schema.prisma +81 -57
- package/generated/prisma-postgresql/wasm.js +33 -42
- package/handlers/WEBHOOKS.md +0 -29
- package/handlers/app-definition-loader.js +128 -19
- package/handlers/app-handler-helpers.js +27 -8
- package/handlers/backend-utils.js +31 -25
- package/handlers/integration-event-dispatcher.js +3 -7
- package/handlers/middleware/admin-auth.js +14 -1
- package/handlers/routers/auth.js +46 -10
- package/handlers/routers/health.js +13 -4
- package/handlers/routers/integration-defined-routers.js +144 -92
- package/handlers/routers/integration-webhook-routers.js +100 -50
- package/handlers/workers/integration-defined-workers.js +5 -2
- package/index.js +66 -16
- package/infrastructure/scheduler/index.js +19 -6
- package/infrastructure/scheduler/netlify-scheduler-adapter.js +216 -0
- package/infrastructure/scheduler/scheduled-job-repository.js +118 -0
- package/infrastructure/scheduler/scheduler-service-factory.js +55 -7
- package/integrations/index.js +1 -14
- package/integrations/integration-base.js +2 -163
- package/integrations/integration-router.js +132 -102
- package/integrations/repositories/integration-mapping-repository-documentdb.js +0 -50
- package/integrations/repositories/integration-mapping-repository-interface.js +0 -15
- package/integrations/repositories/integration-mapping-repository-mongo.js +0 -29
- package/integrations/repositories/integration-mapping-repository-postgres.js +0 -30
- package/integrations/repositories/integration-mapping-repository.js +0 -29
- package/integrations/repositories/integration-not-found.js +14 -0
- package/integrations/repositories/integration-repository-documentdb.js +37 -9
- package/integrations/repositories/integration-repository-interface.js +17 -4
- package/integrations/repositories/integration-repository-mongo.js +64 -96
- package/integrations/repositories/integration-repository-postgres.js +63 -81
- package/integrations/repositories/process-repository-mongo.js +1 -1
- package/integrations/schedule-config.js +80 -0
- package/integrations/tests/doubles/test-integration-repository.js +12 -1
- package/integrations/use-cases/create-integration.js +56 -31
- package/integrations/use-cases/delete-integration-for-user.js +4 -4
- package/integrations/use-cases/dispatch-ongoing-syncs.js +100 -0
- package/integrations/use-cases/get-integration-for-user.js +2 -4
- package/integrations/use-cases/get-integration-instance.js +4 -4
- package/integrations/use-cases/get-integrations-for-user.js +79 -39
- package/integrations/use-cases/get-possible-integrations.js +2 -7
- package/integrations/use-cases/index.js +7 -1
- package/integrations/use-cases/integration-operations-for-user.js +256 -0
- package/integrations/use-cases/resolve-integration-ownership.js +177 -0
- package/integrations/use-cases/update-integration.js +4 -4
- package/integrations/utils/map-integration-dto.js +43 -14
- package/management-api/create-management-api-router.js +49 -0
- package/management-api/error-response.js +116 -0
- package/management-api/management-api-config.js +151 -0
- package/management-api/meta-router.js +76 -0
- package/management-api/openapi/build-openapi.js +144 -0
- package/management-api/openapi/components.js +415 -0
- package/management-api/openapi/v1-operations.js +83 -0
- package/management-api/openapi/v2-operations.js +264 -0
- package/management-api/route-registry.js +411 -0
- package/management-api/test-support/http-client.js +39 -0
- package/management-api/use-cases/get-management-api-meta.js +57 -0
- package/management-api/v1-deprecation.js +120 -0
- package/management-api/v2/create-v2-router.js +85 -0
- package/management-api/v2/dependencies.js +281 -0
- package/management-api/v2/dto.js +143 -0
- package/management-api/v2/handlers/authorization.js +94 -0
- package/management-api/v2/handlers/credentials.js +33 -0
- package/management-api/v2/handlers/entities.js +77 -0
- package/management-api/v2/handlers/integrations.js +128 -0
- package/management-api/v2/handlers/proxy.js +34 -0
- package/management-api/v2/request.js +85 -0
- package/management-api/v2/test-support/fake-dependencies.js +103 -0
- package/modules/domain/authorization-session.js +144 -0
- package/modules/entity-scope.js +15 -0
- package/modules/entity-type-registry.js +311 -0
- package/modules/index.js +14 -0
- package/modules/module-factory.js +12 -0
- package/modules/module.js +53 -2
- package/modules/proxy/proxy-bases.js +169 -0
- package/modules/proxy/proxy-errors.js +31 -0
- package/modules/proxy/proxy-path.js +183 -0
- package/modules/proxy/proxy-policy.js +277 -0
- package/modules/repositories/authorization-session-repository-documentdb.js +112 -0
- package/modules/repositories/authorization-session-repository-factory.js +31 -0
- package/modules/repositories/authorization-session-repository-interface.js +47 -0
- package/modules/repositories/authorization-session-repository-prisma.js +87 -0
- package/modules/repositories/entity-not-found.js +18 -0
- package/modules/repositories/module-repository-documentdb.js +51 -6
- package/modules/repositories/module-repository-interface.js +19 -2
- package/modules/repositories/module-repository-mongo.js +67 -74
- package/modules/repositories/module-repository-postgres.js +66 -74
- package/modules/repositories/module-repository.js +2 -1
- package/modules/requester/proxy-request.js +245 -0
- package/modules/requester/requester.js +35 -5
- package/modules/scope-config.js +192 -0
- package/modules/scope-policy.js +112 -0
- package/modules/scope-resolution.js +288 -0
- package/modules/scope-visibility.js +247 -0
- package/modules/tests/doubles/in-memory-authorization-session-repository.js +45 -0
- package/modules/tests/doubles/ownership-matching.js +18 -0
- package/modules/use-cases/authorize-entity-for-user.js +61 -0
- package/modules/use-cases/create-entity-from-credential.js +113 -0
- package/modules/use-cases/entity-operations-for-user.js +162 -0
- package/modules/use-cases/entity-types.js +139 -0
- package/modules/use-cases/execute-entity-proxy-request.js +331 -0
- package/modules/use-cases/get-authorization-requirements.js +100 -0
- package/modules/use-cases/get-entities-for-user.js +26 -13
- package/modules/use-cases/get-entity-module-for-user.js +113 -0
- package/modules/use-cases/get-entity-options-by-id.js +10 -4
- package/modules/use-cases/get-entity-options-by-type.js +1 -1
- package/modules/use-cases/get-module-instance-from-type.js +1 -1
- package/modules/use-cases/get-module.js +10 -4
- package/modules/use-cases/manage-access.js +21 -0
- package/modules/use-cases/multi-step-authorization.js +329 -0
- package/modules/use-cases/process-authorization-callback.js +53 -19
- package/modules/use-cases/refresh-entity-options.js +10 -4
- package/modules/use-cases/test-module-auth.js +10 -4
- package/package.json +6 -7
- package/prisma-mongodb/schema.prisma +86 -59
- package/prisma-postgresql/migrations/20261003000000_add_authorization_session/migration.sql +28 -0
- package/prisma-postgresql/migrations/20261015000000_add_organization_membership/migration.sql +26 -0
- package/prisma-postgresql/migrations/20261016000000_add_entity_integration_organization/migration.sql +25 -0
- package/prisma-postgresql/migrations/20261017000000_add_scheduled_job/migration.sql +28 -0
- package/prisma-postgresql/schema.prisma +81 -57
- package/providers/index.js +23 -0
- package/providers/resolve-provider.js +93 -0
- package/providers/runtime-detection.js +124 -0
- package/queues/index.js +25 -0
- package/queues/providers/index.js +11 -0
- package/queues/providers/netlify-background-provider.js +150 -0
- package/queues/providers/qstash-queue-provider.js +219 -0
- package/queues/providers/sqs-queue-provider.js +70 -0
- package/queues/queue-client-interface.js +55 -0
- package/queues/queue-message-auth.js +193 -0
- package/queues/queue-provider-factory.js +101 -0
- package/queues/queue-provider.js +65 -0
- package/queues/queuer-util.js +2 -9
- package/queues/sqs-queue-client.js +81 -0
- package/types/index.d.ts +2 -0
- package/types/modules/index.d.ts +214 -0
- package/types/user/index.d.ts +134 -0
- package/user/adopter-jwt-config.js +177 -0
- package/user/adopter-jwt-errors.js +59 -0
- package/user/adopter-token-verifier.js +122 -0
- package/user/app-user-helpers.js +97 -0
- package/user/create-user-authentication.js +64 -0
- package/user/membership.js +51 -0
- package/user/repositories/organization-membership-record.js +19 -0
- package/user/repositories/organization-membership-repository-documentdb.js +106 -0
- package/user/repositories/organization-membership-repository-factory.js +42 -0
- package/user/repositories/organization-membership-repository-interface.js +57 -0
- package/user/repositories/organization-membership-repository-mongo.js +13 -0
- package/user/repositories/organization-membership-repository-postgres.js +29 -0
- package/user/repositories/organization-membership-repository-prisma.js +81 -0
- package/user/repositories/user-repository-documentdb.js +27 -2
- package/user/repositories/user-repository-interface.js +18 -0
- package/user/repositories/user-repository-mongo.js +24 -0
- package/user/repositories/user-repository-postgres.js +18 -0
- package/user/tests/doubles/adopter-jwt-fixtures.js +220 -0
- package/user/use-cases/authenticate-user.js +7 -1
- package/user/use-cases/ensure-organization-membership.js +92 -0
- package/user/use-cases/find-individual-users-by-organization.js +54 -0
- package/user/use-cases/get-user-from-adopter-jwt.js +95 -124
- package/user/use-cases/get-user-from-x-frigg-headers.js +83 -80
- package/user/user.js +64 -1
- package/errors/mapping-already-exists-error.js +0 -14
- package/handlers/workers/integration-triggers.js +0 -25
- package/infrastructure/scheduler/recurrence.js +0 -204
- package/integrations/define/DESIGN.md +0 -122
- package/integrations/define/config.js +0 -98
- package/integrations/define/define-app.js +0 -66
- package/integrations/define/define-extension.js +0 -154
- package/integrations/define/define-integration.js +0 -335
- package/integrations/define/examples/deal-alerts.js +0 -140
- package/integrations/define/extension-binding.js +0 -174
- package/integrations/define/index.js +0 -11
- package/integrations/define/json-schema-lite.js +0 -68
- package/integrations/define/subscriptions.js +0 -186
- package/integrations/define/tests/fixtures/hubspot.js +0 -109
- package/integrations/define/tests/fixtures/slack.js +0 -26
- package/integrations/define/use.js +0 -39
- package/integrations/definitions/README.md +0 -278
- package/integrations/definitions/canonical.js +0 -11
- package/integrations/definitions/capabilities/AUDIT.md +0 -480
- package/integrations/definitions/capabilities/acmeerp.capabilities.json +0 -633
- package/integrations/definitions/capabilities/asana.capabilities.json +0 -279
- package/integrations/definitions/capabilities/calendly.capabilities.json +0 -385
- package/integrations/definitions/capabilities/docusign.capabilities.json +0 -314
- package/integrations/definitions/capabilities/fathom.capabilities.json +0 -238
- package/integrations/definitions/capabilities/github.capabilities.json +0 -585
- package/integrations/definitions/capabilities/hubspot.capabilities.json +0 -822
- package/integrations/definitions/capabilities/jira.capabilities.json +0 -391
- package/integrations/definitions/capabilities/klaviyo.capabilities.json +0 -503
- package/integrations/definitions/capabilities/linear.capabilities.json +0 -378
- package/integrations/definitions/capabilities/netsuite.capabilities.json +0 -535
- package/integrations/definitions/capabilities/notion.capabilities.json +0 -208
- package/integrations/definitions/capabilities/phone.capabilities.json +0 -511
- package/integrations/definitions/capabilities/pipedrive.capabilities.json +0 -430
- package/integrations/definitions/capabilities/quickbooks.capabilities.json +0 -635
- package/integrations/definitions/capabilities/salesforce.capabilities.json +0 -568
- package/integrations/definitions/capabilities/shopify.capabilities.json +0 -1128
- package/integrations/definitions/capabilities/slack.capabilities.json +0 -373
- package/integrations/definitions/capabilities/stripe.capabilities.json +0 -630
- package/integrations/definitions/capabilities/webflow.capabilities.json +0 -196
- package/integrations/definitions/capabilities/zendesk.capabilities.json +0 -422
- package/integrations/definitions/compile.js +0 -80
- package/integrations/definitions/config-form.js +0 -137
- package/integrations/definitions/examples/acme-erp-quickbooks.definition.json +0 -467
- package/integrations/definitions/examples/asana-slack.definition.json +0 -219
- package/integrations/definitions/examples/calendly-salesforce.definition.json +0 -459
- package/integrations/definitions/examples/docusign-salesforce.definition.json +0 -305
- package/integrations/definitions/examples/fathom-hubspot-notion.definition.json +0 -575
- package/integrations/definitions/examples/github-linear.definition.json +0 -322
- package/integrations/definitions/examples/hubspot-slack.definition.json +0 -427
- package/integrations/definitions/examples/klaviyo-hubspot.definition.json +0 -336
- package/integrations/definitions/examples/phone-hubspot.definition.json +0 -633
- package/integrations/definitions/examples/pipedrive-hubspot.definition.json +0 -136
- package/integrations/definitions/examples/pipedrive-phone.definition.json +0 -340
- package/integrations/definitions/examples/records/phone-hubspot.definition-version.json +0 -652
- package/integrations/definitions/examples/records/phone-hubspot.integration.json +0 -86
- package/integrations/definitions/examples/records/phone-hubspot.mappings.json +0 -39
- package/integrations/definitions/examples/records/phone-hubspot.workflow-run.json +0 -62
- package/integrations/definitions/examples/shopify-klaviyo.definition.json +0 -488
- package/integrations/definitions/examples/shopify-netsuite.definition.json +0 -622
- package/integrations/definitions/examples/stripe-quickbooks.definition.json +0 -476
- package/integrations/definitions/examples/webflow-hubspot-slack.definition.json +0 -262
- package/integrations/definitions/examples/zendesk-jira.definition.json +0 -604
- package/integrations/definitions/expressions.js +0 -229
- package/integrations/definitions/index.js +0 -48
- package/integrations/definitions/integration-runtime.js +0 -779
- package/integrations/definitions/interpreter.js +0 -104
- package/integrations/definitions/manifests.js +0 -177
- package/integrations/definitions/renderers/common.js +0 -67
- package/integrations/definitions/renderers/html.js +0 -129
- package/integrations/definitions/renderers/hubspot.js +0 -59
- package/integrations/definitions/renderers/preview.js +0 -154
- package/integrations/definitions/renderers/slack.js +0 -146
- package/integrations/definitions/repositories/definition-version-repository.js +0 -67
- package/integrations/definitions/repositories/workflow-run-repository.js +0 -80
- package/integrations/definitions/router.js +0 -170
- package/integrations/definitions/runtime.js +0 -268
- package/integrations/definitions/schema/capability-manifest.v0.1.schema.json +0 -549
- package/integrations/definitions/schema/installation.v0.1.schema.json +0 -130
- package/integrations/definitions/schema/integration-definition.v0.1.schema.json +0 -909
- package/integrations/definitions/schema/records.md +0 -105
- package/integrations/definitions/schema-check.js +0 -58
- package/integrations/definitions/scripts/check-manifests.js +0 -220
- package/integrations/definitions/scripts/validate.js +0 -66
- package/integrations/definitions/steps.js +0 -123
- package/integrations/definitions/sync-engine.js +0 -297
- package/integrations/definitions/tests/helpers-fake-crm.js +0 -49
- package/integrations/definitions/transforms.js +0 -91
- package/integrations/definitions/use-cases/definition-use-cases.js +0 -245
- package/integrations/definitions/validate.js +0 -436
- package/integrations/definitions/versioning.js +0 -176
- package/integrations/definitions/webhooks.js +0 -119
- package/integrations/integration-types.js +0 -73
- package/integrations/triggers.js +0 -244
- package/integrations/use-cases/run-trigger-tick.js +0 -155
- package/integrations/use-cases/run-trigger.js +0 -77
- package/prisma-postgresql/migrations/20261018000000_add_data_defined_integrations/migration.sql +0 -66
- package/prisma-postgresql/migrations/20261019000000_workflow_run_waits/migration.sql +0 -7
- package/prisma-postgresql/migrations/20261019120000_definition_workspace/migration.sql +0 -5
|
@@ -1,480 +0,0 @@
|
|
|
1
|
-
# Capability manifests against the real API modules
|
|
2
|
-
|
|
3
|
-
Audit of every `*.capabilities.json` in this directory against the Api class it names (ADR-063 phase 4). The manifests
|
|
4
|
-
began as bundled mocks; for each module whose source could be found, every `method` was checked to exist on the real
|
|
5
|
-
Api class and every call shape was read against the method's real signature.
|
|
6
|
-
|
|
7
|
-
Re-run it (no network, nothing instantiated). **One run per module, with that module's checkout first**: the
|
|
8
|
-
api-module-library branches that carry the new methods are separate worktrees, and every worktree also holds an older copy
|
|
9
|
-
of the other modules, so a single run with several roots lets the first root's stale copy of (say) `stripe` win. The
|
|
10
|
-
roots below are the specific module directories, so nothing else can match:
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
M=packages/core/integrations/definitions/scripts/check-manifests.js
|
|
14
|
-
node $M --stub-missing ~/aml-hubspot/packages/v1-ready/hubspot # hubspot (PR #106)
|
|
15
|
-
node $M --stub-missing ~/aml-salesforce/packages/v1-ready/salesforce # salesforce (PR #107)
|
|
16
|
-
node $M --stub-missing ~/aml-stripe/packages/v1-ready/stripe # stripe (PR #108)
|
|
17
|
-
node $M --stub-missing ~/aml-linear/packages/v1-ready/linear # linear (PR #109)
|
|
18
|
-
node $M --stub-missing ~/aml-small/packages/v1-ready # asana, fathom (PR #110)
|
|
19
|
-
node $M --stub-missing ~/aml-small/packages/needs-updating # slack (PR #110)
|
|
20
|
-
node $M --stub-missing <built pipedrive> # pipedrive (PR #110): src/api.ts has no dist, so
|
|
21
|
-
# compile it first (tsc --outDir dist --noCheck)
|
|
22
|
-
node $M --stub-missing ~/phone-app/backend/src/api-modules # phone (the app's own module)
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Each run reports every manifest, so read only the line for the module you are checking (the others resolve to nothing or
|
|
26
|
-
to an older copy). Run from the repo root: loading an Api pulls in `@friggframework/core`, which reads `package.json`
|
|
27
|
-
from the working directory. (`--stub-missing` stands in for dependencies that are not installed here, such as jsforce,
|
|
28
|
-
stripe and @linear/sdk, so the Api's methods can be read.)
|
|
29
|
-
|
|
30
|
-
## Methods that landed after this audit
|
|
31
|
-
|
|
32
|
-
The capabilities this file first marked unimplemented for hubspot, salesforce, stripe, linear, asana, pipedrive, fathom
|
|
33
|
-
and slack now have methods, on unmerged api-module-library branches: **#106 (hubspot), #107 (salesforce), #108 (stripe),
|
|
34
|
-
#109 (linear), #110 (asana, pipedrive, fathom, slack)**, stacked on #105. The manifests describe those methods, so **a
|
|
35
|
-
definition that uses them needs the module releases that carry those PRs**; against an older release the call fails at
|
|
36
|
-
runtime with "not a function". Exceptions that stay unimplemented: Salesforce's signed webhook (it has none: CDC arrives
|
|
37
|
-
over the Pub/Sub stream and Outbound Messages are unsigned), and Phone's `contact.search`, which is not part of that work.
|
|
38
|
-
Two shape notes:
|
|
39
|
-
|
|
40
|
-
- HubSpot `deal.search` was reshaped to the real `searchDeals({ filterGroups, sorts, props, limit, after, allProps })`;
|
|
41
|
-
the old open/closeDateBefore/closeDateAfter/minAmount inputs never existed in the Api and are now `filterGroups`
|
|
42
|
-
filters (`hs_is_closed`, `closedate`, `amount`). The Api returns HubSpot's `{ results, paging }` page, not a bare array,
|
|
43
|
-
so a step that indexes the result as a list (`$.steps.deals[0]`) reads the page object: the `hubspot-slack` example still
|
|
44
|
-
does and is a mock-era shape to revisit.
|
|
45
|
-
- HubSpot `deal.update` is `updateDeal({ dealId, properties })`: one object, so the input is now `dealId` (it was `id`).
|
|
46
|
-
|
|
47
|
-
## How to read this
|
|
48
|
-
|
|
49
|
-
- **ok**: the method exists on the Api class and the call is shaped as the method takes it.
|
|
50
|
-
- **unimplemented**: the real Api has no method that does this (or none that can be called as the capability is
|
|
51
|
-
shaped). The manifest carries `"status": "unimplemented"` and a `note`; a definition that uses the capability
|
|
52
|
-
validates with a **warning**, never an error. The capability name is unchanged so existing definitions keep validating.
|
|
53
|
-
- **unverified**: no source for the module was available; its manifest is unchanged from the mock.
|
|
54
|
-
- **Call shape**. A capability with no `args` is called `api.method(input)` with one object holding every input.
|
|
55
|
-
Nearly every real method takes positional arguments instead (`getContactById(id)`, `updateContact(id, properties)`),
|
|
56
|
-
so the manifest now carries `args`: an ordered list of input names, `"$rest"` (the inputs not named elsewhere, as
|
|
57
|
-
one object) or `{ "value": x }` (a constant, e.g. the sObject name of Salesforce's generic `get(object, id)`).
|
|
58
|
-
`runtime.js` `argumentsFor` spreads them. An input that is declared but never passed is refused by the manifest check,
|
|
59
|
-
because it would be accepted and silently dropped.
|
|
60
|
-
- **Webhook verification.** Every manifest names `verifyWebhookSignature`. No real module has it (only clio, which has no
|
|
61
|
-
manifest). Each real module's `webhook` block was marked `"status": "unimplemented"`; since api-module-library
|
|
62
|
-
659b90d eight of them verify signatures (Salesforce has no signed webhook and stays unimplemented), and a workflow that triggers on
|
|
63
|
-
its events validates with a warning: every delivery would fail signature verification.
|
|
64
|
-
|
|
65
|
-
## Summary
|
|
66
|
-
|
|
67
|
-
| Module | Source checked | Capabilities | Renamed method | Call shape fixed | Inputs changed | Unimplemented upstream |
|
|
68
|
-
|---|---|---|---|---|---|---|
|
|
69
|
-
| asana | ~/api-module-library/packages/v1-ready/asana | 6 | 3 | 1 | 2 | 0 |
|
|
70
|
-
| calendly | none found | 6 | - | - | - | - |
|
|
71
|
-
| docusign | none found | 5 | - | - | - | - |
|
|
72
|
-
| fathom | ~/api-module-library/packages/v1-ready/fathom | 5 | 2 | 2 | 0 | 0 |
|
|
73
|
-
| github | none found | 6 | - | - | - | - |
|
|
74
|
-
| hubspot | ~/api-module-library/packages/v1-ready/hubspot | 23 | 0 | 5 | 1 | 0 |
|
|
75
|
-
| jira | none found | 12 | - | - | - | - |
|
|
76
|
-
| klaviyo | none found | 14 | - | - | - | - |
|
|
77
|
-
| linear | ~/api-module-library/packages/v1-ready/linear | 9 | 0 | 0 | 0 | 0 |
|
|
78
|
-
| netsuite | none found | 15 | - | - | - | - |
|
|
79
|
-
| notion | none found | 6 | - | - | - | - |
|
|
80
|
-
| pipedrive | ~/aml-small/packages/v1-ready/pipedrive (compiled src/api.ts) | 11 | 4 | 3 | 1 | 0 |
|
|
81
|
-
| quickbooks | none found | 14 | - | - | - | - |
|
|
82
|
-
| phone | ~/phone-app/backend/src/api-modules/phone | 13 | 1 | 4 | 0 | 1 |
|
|
83
|
-
| salesforce | ~/api-module-library/packages/v1-ready/salesforce | 12 | 5 | 5 | 0 | 0 (webhook signing aside) |
|
|
84
|
-
| shopify | none found | 15 | - | - | - | - |
|
|
85
|
-
| slack | ~/api-module-library/packages/needs-updating/slack | 7 | 2 | 1 | 0 | 0 |
|
|
86
|
-
| stripe | ~/api-module-library/packages/v1-ready/stripe | 9 | 1 | 0 | 0 | 0 |
|
|
87
|
-
| acmeerp | none found | 13 | - | - | - | - |
|
|
88
|
-
| webflow | none found | 5 | - | - | - | - |
|
|
89
|
-
| zendesk | none found | 8 | - | - | - | - |
|
|
90
|
-
|
|
91
|
-
Modules with no source to check against: calendly, docusign, github, jira, klaviyo, netsuite, notion, quickbooks, shopify, acmeerp, webflow, zendesk. Their capabilities are still mock-shaped:
|
|
92
|
-
nothing in them is known to exist.
|
|
93
|
-
|
|
94
|
-
Where a module has two candidates the first root given wins. Phone is checked against the deployed
|
|
95
|
-
`phone-app/backend/src/api-modules/phone` (the app's own module: `createUnifiedWebhook`, `updateContact`). The library's `v1-ready/phone` 1.0.0 lacks `updateContact` and has `createCallWebhook` and friends
|
|
96
|
-
instead of one webhook method. Pipedrive is checked against the compiled TypeScript source of the api-module-library branch (the library copy has no `dist`).
|
|
97
|
-
|
|
98
|
-
Manifest versions in the files (for example HubSpot 1.4.0, Asana 1.5.1) are ahead of the module sources audited (HubSpot
|
|
99
|
-
1.1.7, Asana 1.1.5): the manifests describe modules that were never released as written.
|
|
100
|
-
|
|
101
|
-
## Asana (`asana`)
|
|
102
|
-
|
|
103
|
-
Checked against `~/api-module-library/packages/v1-ready/asana` (@friggframework/api-module-asana manifest 1.5.1).
|
|
104
|
-
|
|
105
|
-
| Capability | Method | Status | Real signature | Note |
|
|
106
|
-
|---|---|---|---|---|
|
|
107
|
-
| `task.get` | `getTaskById` | ok | `getTaskById(id)` | Api.getTaskById(id) takes only the id; field selection (opt_fields) is not supported. (method was `getTask`; called with one object; now positional; inputs were taskGid, opt_fields) |
|
|
108
|
-
| `task.search` | `searchTasksInWorkspace` | ok (unreleased) | `searchTasksInWorkspace(workspaceId, params = {})` | Implemented in api-module-library #110; needs the release that includes it. |
|
|
109
|
-
| `project.list` | `listProjects` | ok | `listProjects(params)` | (method was `getProjects`; inputs were workspaceGid, archived) |
|
|
110
|
-
| `workspace.list` | `listWorkspaces` | ok | `listWorkspaces()` | (method was `getWorkspaces`) |
|
|
111
|
-
| `webhook.create` | `createWebhook` | ok (unreleased) | `createWebhook(resource, target, filters)` | Implemented in api-module-library #110; needs the release that includes it. |
|
|
112
|
-
| `webhook.delete` | `deleteWebhook` | ok (unreleased) | `deleteWebhook(webhookGid)` | Implemented in api-module-library #110; needs the release that includes it. |
|
|
113
|
-
| `webhook.verify` | `verifyWebhookSignature` | ok (unreleased) | `verifyWebhookSignature({ headers, body, rawBody, method?, url?, now? })` | Implemented in api-module-library 659b90d per the vendor's signing docs; needs the release that includes it. |
|
|
114
|
-
|
|
115
|
-
## Calendly (`calendly`)
|
|
116
|
-
|
|
117
|
-
**No module source available** (No directory named calendly or api-module-calendly). Nothing here is verified; the manifest is still a mock.
|
|
118
|
-
|
|
119
|
-
| Capability | Method | Status | Real signature | Note |
|
|
120
|
-
|---|---|---|---|---|
|
|
121
|
-
| `invitee.get` | `getInvitee` | unverified | | |
|
|
122
|
-
| `event.get` | `getScheduledEvent` | unverified | | |
|
|
123
|
-
| `event.list` | `listScheduledEvents` | unverified | | |
|
|
124
|
-
| `eventType.list` | `listEventTypes` | unverified | | |
|
|
125
|
-
| `webhook.create` | `createWebhookSubscription` | unverified | | |
|
|
126
|
-
| `webhook.delete` | `deleteWebhookSubscription` | unverified | | |
|
|
127
|
-
| `webhook.verify` | `verifyWebhookSignature` | unverified | | |
|
|
128
|
-
|
|
129
|
-
## DocuSign eSignature (`docusign`)
|
|
130
|
-
|
|
131
|
-
**No module source available** (No directory named docusign or api-module-docusign). Nothing here is verified; the manifest is still a mock.
|
|
132
|
-
|
|
133
|
-
| Capability | Method | Status | Real signature | Note |
|
|
134
|
-
|---|---|---|---|---|
|
|
135
|
-
| `envelope.get` | `getEnvelope` | unverified | | |
|
|
136
|
-
| `envelope.list` | `listStatusChanges` | unverified | | |
|
|
137
|
-
| `document.combined` | `getCombinedDocument` | unverified | | |
|
|
138
|
-
| `connect.create` | `createConnectConfiguration` | unverified | | |
|
|
139
|
-
| `connect.delete` | `deleteConnectConfiguration` | unverified | | |
|
|
140
|
-
| `webhook.verify` | `verifyWebhookSignature` | unverified | | |
|
|
141
|
-
|
|
142
|
-
## Fathom (`fathom`)
|
|
143
|
-
|
|
144
|
-
Checked against `~/api-module-library/packages/v1-ready/fathom` (@friggframework/api-module-fathom manifest 0.4.0).
|
|
145
|
-
|
|
146
|
-
| Capability | Method | Status | Real signature | Note |
|
|
147
|
-
|---|---|---|---|---|
|
|
148
|
-
| `meeting.list` | `listMeetings` | ok | `listMeetings(params = {})` | |
|
|
149
|
-
| `meeting.summary` | `getSummary` | ok | `getSummary(recordingId, params = {})` | (method was `getRecordingSummary`; called with one object; now positional) |
|
|
150
|
-
| `meeting.transcript` | `getTranscript` | ok | `getTranscript(recordingId, params = {})` | (method was `getRecordingTranscript`; called with one object; now positional) |
|
|
151
|
-
| `webhook.create` | `createWebhook` | ok | `createWebhook(data)` | |
|
|
152
|
-
| `webhook.delete` | `deleteWebhook` | ok (unreleased) | `deleteWebhook(id)` | Implemented in api-module-library #110; needs the release that includes it. |
|
|
153
|
-
| `webhook.verify` | `verifyWebhookSignature` | ok (unreleased) | `verifyWebhookSignature({ headers, body, rawBody, method?, url?, now? })` | Implemented in api-module-library 659b90d per the vendor's signing docs; needs the release that includes it. |
|
|
154
|
-
|
|
155
|
-
## GitHub (`github`)
|
|
156
|
-
|
|
157
|
-
**No module source available** (No directory named github or api-module-github). Nothing here is verified; the manifest is still a mock.
|
|
158
|
-
|
|
159
|
-
| Capability | Method | Status | Real signature | Note |
|
|
160
|
-
|---|---|---|---|---|
|
|
161
|
-
| `issue.get` | `getIssue` | unverified | | |
|
|
162
|
-
| `issue.list` | `listIssuesForRepo` | unverified | | |
|
|
163
|
-
| `issue.create` | `createIssue` | unverified | | |
|
|
164
|
-
| `issue.update` | `updateIssue` | unverified | | |
|
|
165
|
-
| `issue.comment` | `createIssueComment` | unverified | | |
|
|
166
|
-
| `repo.list` | `listInstallationRepos` | unverified | | |
|
|
167
|
-
| `webhook.verify` | `verifyWebhookSignature` | unverified | | |
|
|
168
|
-
|
|
169
|
-
## HubSpot (`hubspot`)
|
|
170
|
-
|
|
171
|
-
Checked against `~/api-module-library/packages/v1-ready/hubspot` (@friggframework/api-module-hubspot manifest 1.4.0).
|
|
172
|
-
|
|
173
|
-
| Capability | Method | Status | Real signature | Note |
|
|
174
|
-
|---|---|---|---|---|
|
|
175
|
-
| `contact.get` | `getContactById` | ok | `getContactById(contactId)` | Api.getContactById(id) always requests the portal's full property list; a properties argument is not supported. (called with one object; now positional; inputs were id, properties) |
|
|
176
|
-
| `contact.search` | `searchContacts` | ok (unreleased) | `searchContacts(params = {})` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
177
|
-
| `contact.list` | `listContacts` | ok | `listContacts(params)` | Api.listContacts({ after, limit, properties }) has no modified-since filter, so updatedSince is ignored and a poll re-lists every contact. |
|
|
178
|
-
| `contact.create` | `createContact` | ok | `createContact(body)` | (called with one object; now positional) |
|
|
179
|
-
| `contact.update` | `updateContact` | ok | `updateContact(contactId, properties)` | (called with one object; now positional) |
|
|
180
|
-
| `deal.get` | `getDealById` | ok | `getDealById(dealId)` | (called with one object; now positional) |
|
|
181
|
-
| `deal.listForContact` | `listDealsForContact` | ok (unreleased) | `listDealsForContact(contactId, open)` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
182
|
-
| `deal.contacts` | `listContactsForDeal` | ok (unreleased) | `listContactsForDeal(dealId)` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
183
|
-
| `task.create` | `createTask` | ok (unreleased) | `createTask(properties, contactId)` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
184
|
-
| `call.create` | `createCallEngagement` | ok (unreleased) | `createCallEngagement(properties, contactId)` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
185
|
-
| `note.create` | `createNote` | ok (unreleased) | `createNote(properties, contactId, dealId)` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
186
|
-
| `owner.list` | `listOwners` | ok (unreleased) | `listOwners()` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
187
|
-
| `pipeline.stages` | `listDealStages` | ok (unreleased) | `listDealStages(pipelineId)` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
188
|
-
| `contact.upsertByEmail` | `upsertContactByEmail` | ok (unreleased) | `upsertContactByEmail(email, properties)` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
189
|
-
| `deal.update` | `updateDeal` | ok (unreleased) | `updateDeal(params)` | Api.updateDeal({ dealId, properties }) takes one object, so the input is dealId (it was id). Implemented in api-module-library #106; needs the release that includes it. |
|
|
190
|
-
| `deal.search` | `searchDeals` | ok (unreleased) | `searchDeals(params)` | Api.searchDeals takes HubSpot filterGroups ([{ filters: [{ propertyName, operator, value }] }]), sorts, props, limit, after and allProps (default true: every deal property when props is empty). The capability was reshaped from open/closeDateBefore/closeDateAfter/minAmount, which the Api never had; a definition expresses those as filterGroups. Implemented in api-module-library #106; needs the release that includes it. |
|
|
191
|
-
| `task.get` | `getTaskById` | ok (unreleased) | `getTaskById(id, properties)` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
192
|
-
| `task.update` | `updateTask` | ok (unreleased) | `updateTask(id, properties)` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
193
|
-
| `task.search` | `searchTasks` | ok (unreleased) | `searchTasks(params = {})` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
194
|
-
| `owner.get` | `getOwnerById` | ok | `getOwnerById(ownerId)` | (called with one object; now positional) |
|
|
195
|
-
| `owner.findByEmail` | `getOwnerByEmail` | ok (unreleased) | `getOwnerByEmail(email)` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
196
|
-
| `subscription.definitions` | `listSubscriptionDefinitions` | ok (unreleased) | `listSubscriptionDefinitions()` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
197
|
-
| `subscription.unsubscribe` | `unsubscribeEmail` | ok (unreleased) | `unsubscribeEmail(emailAddress, subscriptionId, legalBasis, legalBasisExplanation)` | Implemented in api-module-library #106; needs the release that includes it. |
|
|
198
|
-
| `webhook.verify` | `verifyWebhookSignature` | ok (unreleased) | `verifyWebhookSignature({ headers, body, rawBody, method?, url?, now? })` | Implemented in api-module-library 659b90d per the vendor's signing docs; needs the release that includes it. |
|
|
199
|
-
|
|
200
|
-
## Jira Cloud (`jira`)
|
|
201
|
-
|
|
202
|
-
**No module source available** (No directory named jira or api-module-jira). Nothing here is verified; the manifest is still a mock.
|
|
203
|
-
|
|
204
|
-
| Capability | Method | Status | Real signature | Note |
|
|
205
|
-
|---|---|---|---|---|
|
|
206
|
-
| `issue.create` | `createIssue` | unverified | | |
|
|
207
|
-
| `issue.get` | `getIssue` | unverified | | |
|
|
208
|
-
| `issue.update` | `editIssue` | unverified | | |
|
|
209
|
-
| `issue.addComment` | `addComment` | unverified | | |
|
|
210
|
-
| `issue.transition` | `transitionIssue` | unverified | | |
|
|
211
|
-
| `issue.search` | `searchJql` | unverified | | |
|
|
212
|
-
| `remoteLink.create` | `createRemoteLink` | unverified | | |
|
|
213
|
-
| `project.list` | `listProjects` | unverified | | |
|
|
214
|
-
| `issueType.list` | `listIssueTypes` | unverified | | |
|
|
215
|
-
| `webhook.register` | `registerDynamicWebhooks` | unverified | | |
|
|
216
|
-
| `webhook.refresh` | `refreshWebhooks` | unverified | | |
|
|
217
|
-
| `webhook.delete` | `deleteWebhooks` | unverified | | |
|
|
218
|
-
| `webhook.verify` | `verifyWebhookSignature` | unverified | | |
|
|
219
|
-
|
|
220
|
-
## Klaviyo (`klaviyo`)
|
|
221
|
-
|
|
222
|
-
**No module source available** (No directory named klaviyo or api-module-klaviyo). Nothing here is verified; the manifest is still a mock.
|
|
223
|
-
|
|
224
|
-
| Capability | Method | Status | Real signature | Note |
|
|
225
|
-
|---|---|---|---|---|
|
|
226
|
-
| `profile.get` | `getProfile` | unverified | | |
|
|
227
|
-
| `profile.search` | `getProfiles` | unverified | | |
|
|
228
|
-
| `profile.list` | `listProfiles` | unverified | | |
|
|
229
|
-
| `profile.create` | `createProfile` | unverified | | |
|
|
230
|
-
| `profile.update` | `updateProfile` | unverified | | |
|
|
231
|
-
| `profile.upsert` | `createOrUpdateProfile` | unverified | | |
|
|
232
|
-
| `profile.lists` | `getProfileLists` | unverified | | |
|
|
233
|
-
| `profile.subscribe` | `subscribeProfiles` | unverified | | |
|
|
234
|
-
| `profile.unsubscribe` | `unsubscribeProfiles` | unverified | | |
|
|
235
|
-
| `list.list` | `getLists` | unverified | | |
|
|
236
|
-
| `list.addProfiles` | `addProfilesToList` | unverified | | |
|
|
237
|
-
| `event.create` | `createEvent` | unverified | | |
|
|
238
|
-
| `webhook.create` | `createWebhook` | unverified | | |
|
|
239
|
-
| `webhook.delete` | `deleteWebhook` | unverified | | |
|
|
240
|
-
| `webhook.verify` | `verifyWebhookSignature` | unverified | | |
|
|
241
|
-
|
|
242
|
-
## Linear (`linear`)
|
|
243
|
-
|
|
244
|
-
Checked against `~/api-module-library/packages/v1-ready/linear` (@friggframework/api-module-linear manifest 1.1.0).
|
|
245
|
-
|
|
246
|
-
| Capability | Method | Status | Real signature | Note |
|
|
247
|
-
|---|---|---|---|---|
|
|
248
|
-
| `issue.get` | `issue` | ok (unreleased) | `issue(id)` | Implemented in api-module-library #109; needs the release that includes it. |
|
|
249
|
-
| `issue.byIdentifier` | `issueByIdentifier` | ok (unreleased) | `issueByIdentifier(identifier)` | Implemented in api-module-library #109; needs the release that includes it. |
|
|
250
|
-
| `issue.search` | `searchIssues` | ok (unreleased) | `searchIssues(teamId, stateType, updatedBefore, first)` | Implemented in api-module-library #109; needs the release that includes it. |
|
|
251
|
-
| `issue.create` | `issueCreate` | ok (unreleased) | `issueCreate(teamId, title, description, priority, stateName, labelIds)` | Implemented in api-module-library #109; needs the release that includes it. |
|
|
252
|
-
| `issue.update` | `issueUpdate` | ok (unreleased) | `issueUpdate(id, input)` | Implemented in api-module-library #109; needs the release that includes it. |
|
|
253
|
-
| `comment.create` | `commentCreate` | ok (unreleased) | `commentCreate(issueId, body)` | Implemented in api-module-library #109; needs the release that includes it. |
|
|
254
|
-
| `attachment.link` | `attachmentLinkURL` | ok (unreleased) | `attachmentLinkURL(issueId, url, title)` | Implemented in api-module-library #109; needs the release that includes it. |
|
|
255
|
-
| `team.list` | `teams` | ok (unreleased) | `teams()` | Implemented in api-module-library #109; needs the release that includes it. |
|
|
256
|
-
| `workflowState.list` | `workflowStates` | ok (unreleased) | `workflowStates(teamId, name)` | Implemented in api-module-library #109; needs the release that includes it. |
|
|
257
|
-
| `webhook.verify` | `verifyWebhookSignature` | ok (unreleased) | `verifyWebhookSignature({ headers, body, rawBody, method?, url?, now? })` | Implemented in api-module-library 659b90d per the vendor's signing docs; needs the release that includes it. |
|
|
258
|
-
|
|
259
|
-
## NetSuite (`netsuite`)
|
|
260
|
-
|
|
261
|
-
**No module source available** (No directory named netsuite or api-module-netsuite). Nothing here is verified; the manifest is still a mock.
|
|
262
|
-
|
|
263
|
-
| Capability | Method | Status | Real signature | Note |
|
|
264
|
-
|---|---|---|---|---|
|
|
265
|
-
| `customer.get` | `getCustomer` | unverified | | |
|
|
266
|
-
| `customer.search` | `searchCustomers` | unverified | | |
|
|
267
|
-
| `customer.list` | `listCustomers` | unverified | | |
|
|
268
|
-
| `customer.create` | `createCustomer` | unverified | | |
|
|
269
|
-
| `customer.update` | `updateCustomer` | unverified | | |
|
|
270
|
-
| `salesOrder.create` | `createSalesOrder` | unverified | | |
|
|
271
|
-
| `salesOrder.get` | `getSalesOrder` | unverified | | |
|
|
272
|
-
| `salesOrder.update` | `updateSalesOrder` | unverified | | |
|
|
273
|
-
| `salesOrder.search` | `searchSalesOrders` | unverified | | |
|
|
274
|
-
| `creditMemo.create` | `createCreditMemo` | unverified | | |
|
|
275
|
-
| `itemFulfillment.get` | `getItemFulfillment` | unverified | | |
|
|
276
|
-
| `itemFulfillment.list` | `listItemFulfillments` | unverified | | |
|
|
277
|
-
| `item.search` | `searchItems` | unverified | | |
|
|
278
|
-
| `subsidiary.list` | `listSubsidiaries` | unverified | | |
|
|
279
|
-
| `location.list` | `listLocations` | unverified | | |
|
|
280
|
-
|
|
281
|
-
## Notion (`notion`)
|
|
282
|
-
|
|
283
|
-
**No module source available** (No directory named notion or api-module-notion). Nothing here is verified; the manifest is still a mock.
|
|
284
|
-
|
|
285
|
-
| Capability | Method | Status | Real signature | Note |
|
|
286
|
-
|---|---|---|---|---|
|
|
287
|
-
| `page.create` | `createPage` | unverified | | |
|
|
288
|
-
| `page.get` | `retrievePage` | unverified | | |
|
|
289
|
-
| `page.update` | `updatePage` | unverified | | |
|
|
290
|
-
| `block.append` | `appendBlockChildren` | unverified | | |
|
|
291
|
-
| `database.query` | `queryDatabase` | unverified | | |
|
|
292
|
-
| `database.list` | `searchDatabases` | unverified | | |
|
|
293
|
-
| `webhook.verify` | `verifyWebhookSignature` | unverified | | |
|
|
294
|
-
|
|
295
|
-
## Pipedrive (`pipedrive`)
|
|
296
|
-
|
|
297
|
-
Checked against the api-module-library branch source `~/aml-small/packages/v1-ready/pipedrive` (src/api.ts, compiled; PR #110), manifest 2.1.0. The built 2.1.0 in `~/phone-app/backend/node_modules/@friggframework` predates `addPerson`/`updatePerson`.
|
|
298
|
-
|
|
299
|
-
| Capability | Method | Status | Real signature | Note |
|
|
300
|
-
|---|---|---|---|---|
|
|
301
|
-
| `person.get` | `getPerson` | ok | `getPerson(personId, params)` | (called with one object; now positional) |
|
|
302
|
-
| `person.search` | `searchPersons` | ok | `searchPersons(params)` | |
|
|
303
|
-
| `person.list` | `listPersons` | ok | `listPersons(params)` | |
|
|
304
|
-
| `person.create` | `addPerson` | ok (unreleased) | `addPerson(person)` | Implemented in api-module-library #110; needs the release that includes it. |
|
|
305
|
-
| `person.update` | `updatePerson` | ok (unreleased) | `updatePerson(personId, person)` | Implemented in api-module-library #110; needs the release that includes it. |
|
|
306
|
-
| `activity.create` | `createActivity` | ok | `createActivity(params)` | (method was `addActivity`; called with one object; now positional) |
|
|
307
|
-
| `activity.list` | `listActivities` | ok | `listActivities(params)` | |
|
|
308
|
-
| `deal.listForPerson` | `listDeals` | ok | `listDeals(params)` | (method was `listPersonDeals`; inputs were personId, status) |
|
|
309
|
-
| `user.list` | `listUsers` | ok | `listUsers()` | (method was `getUsers`) |
|
|
310
|
-
| `webhook.create` | `createWebhook` | ok | `createWebhook(params)` | (method was `addWebhook`) |
|
|
311
|
-
| `webhook.delete` | `deleteWebhook` | ok | `deleteWebhook(webhookId)` | (called with one object; now positional) |
|
|
312
|
-
| `webhook.verify` | `verifyWebhookSignature` | ok (unreleased) | `verifyWebhookSignature({ headers, body, rawBody, method?, url?, now? })` | Implemented in api-module-library 659b90d per the vendor's signing docs; needs the release that includes it. |
|
|
313
|
-
|
|
314
|
-
## QuickBooks Online (`quickbooks`)
|
|
315
|
-
|
|
316
|
-
**No module source available** (No directory named quickbooks or api-module-quickbooks). Nothing here is verified; the manifest is still a mock.
|
|
317
|
-
|
|
318
|
-
| Capability | Method | Status | Real signature | Note |
|
|
319
|
-
|---|---|---|---|---|
|
|
320
|
-
| `customer.get` | `getCustomer` | unverified | | |
|
|
321
|
-
| `customer.query` | `queryCustomers` | unverified | | |
|
|
322
|
-
| `customer.list` | `listCustomers` | unverified | | |
|
|
323
|
-
| `customer.create` | `createCustomer` | unverified | | |
|
|
324
|
-
| `customer.update` | `updateCustomer` | unverified | | |
|
|
325
|
-
| `salesReceipt.create` | `createSalesReceipt` | unverified | | |
|
|
326
|
-
| `refundReceipt.create` | `createRefundReceipt` | unverified | | |
|
|
327
|
-
| `invoice.create` | `createInvoice` | unverified | | |
|
|
328
|
-
| `invoice.get` | `getInvoice` | unverified | | |
|
|
329
|
-
| `invoice.send` | `sendInvoice` | unverified | | |
|
|
330
|
-
| `payment.get` | `getPayment` | unverified | | |
|
|
331
|
-
| `deposit.create` | `createDeposit` | unverified | | |
|
|
332
|
-
| `item.list` | `listItems` | unverified | | |
|
|
333
|
-
| `account.list` | `listAccounts` | unverified | | |
|
|
334
|
-
| `webhook.verify` | `verifyWebhookSignature` | unverified | | |
|
|
335
|
-
|
|
336
|
-
## Phone (`phone`)
|
|
337
|
-
|
|
338
|
-
Checked against `~/phone-app/backend/src/api-modules/phone` (@acme/api-module-phone manifest 2.1.0).
|
|
339
|
-
|
|
340
|
-
| Capability | Method | Status | Real signature | Note |
|
|
341
|
-
|---|---|---|---|---|
|
|
342
|
-
| `contact.get` | `getContact` | ok | `getContact(id)` | (called with one object; now positional) |
|
|
343
|
-
| `contact.search` | `searchContacts` | unimplemented | none | Api has no contact search; listContacts filters by externalIds and sources only. |
|
|
344
|
-
| `contact.list` | `listContacts` | ok | `listContacts(params = {})` | |
|
|
345
|
-
| `contact.create` | `createContact` | ok | `createContact(data)` | |
|
|
346
|
-
| `contact.update` | `updateContact` | ok | `updateContact(id, data)` | (called with one object; now positional) |
|
|
347
|
-
| `call.list` | `listCalls` | ok | `listCalls(params = {})` | |
|
|
348
|
-
| `call.recording` | `getCallRecordings` | ok | `getCallRecordings(callId)` | (called with one object; now positional) |
|
|
349
|
-
| `message.send` | `sendMessage` | ok | `sendMessage(data)` | |
|
|
350
|
-
| `message.list` | `listMessages` | ok | `listMessages(params = {})` | |
|
|
351
|
-
| `phoneNumber.list` | `listPhoneNumbers` | ok | `listPhoneNumbers(params = {})` | |
|
|
352
|
-
| `user.list` | `listUsers` | ok | `listUsers(params = {})` | |
|
|
353
|
-
| `webhook.create` | `createUnifiedWebhook` | ok | `createUnifiedWebhook(data)` | (method was `createWebhook`) |
|
|
354
|
-
| `webhook.delete` | `deleteWebhook` | ok | `deleteWebhook(id)` | (called with one object; now positional) |
|
|
355
|
-
| `webhook.verify` | `verifyWebhookSignature` | ok (unreleased) | `verifyWebhookSignature({ headers, body, rawBody, method?, url?, now? })` | Implemented in api-module-library 659b90d per the vendor's signing docs; needs the release that includes it. |
|
|
356
|
-
|
|
357
|
-
## Salesforce (`salesforce`)
|
|
358
|
-
|
|
359
|
-
Checked against `~/api-module-library/packages/v1-ready/salesforce` (@friggframework/api-module-salesforce manifest 3.0.2).
|
|
360
|
-
|
|
361
|
-
| Capability | Method | Status | Real signature | Note |
|
|
362
|
-
|---|---|---|---|---|
|
|
363
|
-
| `lead.get` | `get` | ok | `get(object, id)` | (method was `getLead`; called with one object; now positional) |
|
|
364
|
-
| `lead.create` | `create` | ok | `create(object, data)` | (method was `createLead`; called with one object; now positional) |
|
|
365
|
-
| `lead.update` | `updateLead` | ok (unreleased) | `updateLead(id, fields)` | Implemented in api-module-library #107; needs the release that includes it. |
|
|
366
|
-
| `person.searchByEmail` | `searchPeopleByEmail` | ok (unreleased) | `searchPeopleByEmail(email)` | Implemented in api-module-library #107; needs the release that includes it. |
|
|
367
|
-
| `event.create` | `create` | ok | `create(object, data)` | (method was `createEvent`; called with one object; now positional) |
|
|
368
|
-
| `event.update` | `updateEvent` | ok (unreleased) | `updateEvent(id, fields)` | Implemented in api-module-library #107; needs the release that includes it. |
|
|
369
|
-
| `opportunity.get` | `get` | ok | `get(object, id)` | (method was `getOpportunity`; called with one object; now positional) |
|
|
370
|
-
| `opportunity.update` | `updateOpportunity` | ok (unreleased) | `updateOpportunity(id, fields)` | Implemented in api-module-library #107; needs the release that includes it. |
|
|
371
|
-
| `task.create` | `create` | ok | `create(object, data)` | (method was `createTask`; called with one object; now positional) |
|
|
372
|
-
| `file.attach` | `createContentVersion` | ok (unreleased) | `createContentVersion(title, pathOnClient, versionData, firstPublishLocationId)` | Implemented in api-module-library #107; needs the release that includes it. |
|
|
373
|
-
| `note.create` | `createContentNote` | ok (unreleased) | `createContentNote(title, content, linkedEntityId)` | Implemented in api-module-library #107; needs the release that includes it. |
|
|
374
|
-
| `user.list` | `listUsers` | ok (unreleased) | `listUsers(activeOnly = false)` | Implemented in api-module-library #107; needs the release that includes it. |
|
|
375
|
-
| `webhook.verify` | `verifyWebhookSignature` | unimplemented | | Not a webhook: CDC arrives over the Pub/Sub or CometD stream; Outbound Messages are unsigned (OrganizationId + IP allowlist). Deliveries are rejected. |
|
|
376
|
-
|
|
377
|
-
## Shopify (`shopify`)
|
|
378
|
-
|
|
379
|
-
**No module source available** (No directory named shopify or api-module-shopify). Nothing here is verified; the manifest is still a mock.
|
|
380
|
-
|
|
381
|
-
| Capability | Method | Status | Real signature | Note |
|
|
382
|
-
|---|---|---|---|---|
|
|
383
|
-
| `order.get` | `getOrder` | unverified | | |
|
|
384
|
-
| `order.list` | `listOrders` | unverified | | |
|
|
385
|
-
| `order.update` | `updateOrder` | unverified | | |
|
|
386
|
-
| `order.fulfillmentOrders` | `listFulfillmentOrders` | unverified | | |
|
|
387
|
-
| `fulfillment.create` | `createFulfillment` | unverified | | |
|
|
388
|
-
| `customer.get` | `getCustomer` | unverified | | |
|
|
389
|
-
| `customer.list` | `listCustomers` | unverified | | |
|
|
390
|
-
| `customer.search` | `searchCustomers` | unverified | | |
|
|
391
|
-
| `customer.create` | `createCustomer` | unverified | | |
|
|
392
|
-
| `customer.update` | `updateCustomer` | unverified | | |
|
|
393
|
-
| `checkout.list` | `listAbandonedCheckouts` | unverified | | |
|
|
394
|
-
| `variant.byInventoryItem` | `getVariantByInventoryItemId` | unverified | | |
|
|
395
|
-
| `location.list` | `listLocations` | unverified | | |
|
|
396
|
-
| `webhook.create` | `createWebhook` | unverified | | |
|
|
397
|
-
| `webhook.delete` | `deleteWebhook` | unverified | | |
|
|
398
|
-
| `webhook.verify` | `verifyWebhookSignature` | unverified | | |
|
|
399
|
-
|
|
400
|
-
## Slack (`slack`)
|
|
401
|
-
|
|
402
|
-
Checked against `~/api-module-library/packages/needs-updating/slack` (@friggframework/api-module-slack manifest 2.0.0).
|
|
403
|
-
|
|
404
|
-
| Capability | Method | Status | Real signature | Note |
|
|
405
|
-
|---|---|---|---|---|
|
|
406
|
-
| `message.post` | `postMessage` | ok | `postMessage(body)` | |
|
|
407
|
-
| `message.update` | `updateMessage` | ok | `updateMessage(body)` | |
|
|
408
|
-
| `message.postEphemeral` | `postEphemeral` | ok | `postEphemeral(body)` | |
|
|
409
|
-
| `message.permalink` | `getMessagePermalink` | ok | `getMessagePermalink(query)` | (method was `getPermalink`) |
|
|
410
|
-
| `channel.list` | `listChannels` | ok | `listChannels(query)` | (method was `listConversations`) |
|
|
411
|
-
| `user.list` | `listUsers` | ok (unreleased) | `listUsers(query = {})` | Implemented in api-module-library #110; needs the release that includes it. |
|
|
412
|
-
| `user.lookupByEmail` | `lookupUserByEmail` | ok | `lookupUserByEmail(email)` | (called with one object; now positional) |
|
|
413
|
-
| `webhook.verify` | `verifyWebhookSignature` | ok (unreleased) | `verifyWebhookSignature({ headers, body, rawBody, method?, url?, now? })` | Implemented in api-module-library 659b90d per the vendor's signing docs; needs the release that includes it. |
|
|
414
|
-
|
|
415
|
-
## Stripe (`stripe`)
|
|
416
|
-
|
|
417
|
-
Checked against `~/api-module-library/packages/v1-ready/stripe` (@friggframework/api-module-stripe manifest 2.3.0).
|
|
418
|
-
|
|
419
|
-
| Capability | Method | Status | Real signature | Note |
|
|
420
|
-
|---|---|---|---|---|
|
|
421
|
-
| `customer.get` | `retrieveCustomer` | ok (unreleased) | `retrieveCustomer(id, params = {}, options = {})` | Implemented in api-module-library #108; needs the release that includes it. |
|
|
422
|
-
| `customer.list` | `listCustomers` | ok (unreleased) | `listCustomers(params = {}, options = {})` | Implemented in api-module-library #108; needs the release that includes it. |
|
|
423
|
-
| `customer.search` | `searchCustomers` | ok (unreleased) | `searchCustomers(query, params = {}, options = {})` | Implemented in api-module-library #108; needs the release that includes it. |
|
|
424
|
-
| `customer.create` | `createCustomer` | ok (unreleased) | `createCustomer(params = {}, options = {})` | Implemented in api-module-library #108; needs the release that includes it. |
|
|
425
|
-
| `customer.update` | `updateCustomer` | ok (unreleased) | `updateCustomer(id, params = {}, options = {})` | Implemented in api-module-library #108; needs the release that includes it. |
|
|
426
|
-
| `paymentIntent.get` | `retrievePaymentIntent` | ok (unreleased) | `retrievePaymentIntent(id, params = {}, options = {})` | Implemented in api-module-library #108; needs the release that includes it. |
|
|
427
|
-
| `refund.get` | `retrieveRefund` | ok (unreleased) | `retrieveRefund(id, params = {}, options = {})` | Implemented in api-module-library #108; needs the release that includes it. |
|
|
428
|
-
| `payout.list` | `listPayouts` | ok (unreleased) | `listPayouts(params = {}, options = {})` | Implemented in api-module-library #108; needs the release that includes it. |
|
|
429
|
-
| `balanceTransaction.list` | `getBalanceTransactions` | ok | `getBalanceTransactions(params)` | (method was `listBalanceTransactions`) |
|
|
430
|
-
| `webhook.verify` | `verifyWebhookSignature` | ok (unreleased) | `verifyWebhookSignature({ headers, body, rawBody, method?, url?, now? })` | Implemented in api-module-library 659b90d per the vendor's signing docs; needs the release that includes it. |
|
|
431
|
-
|
|
432
|
-
## Acme ERP (`acmeerp`)
|
|
433
|
-
|
|
434
|
-
**No module source available** (No directory named acmeerp or api-module-acmeerp). Nothing here is verified; the manifest is still a mock.
|
|
435
|
-
|
|
436
|
-
| Capability | Method | Status | Real signature | Note |
|
|
437
|
-
|---|---|---|---|---|
|
|
438
|
-
| `customer.get` | `getCustomer` | unverified | | |
|
|
439
|
-
| `customer.list` | `listCustomers` | unverified | | |
|
|
440
|
-
| `customer.create` | `createCustomer` | unverified | | |
|
|
441
|
-
| `customer.update` | `updateCustomer` | unverified | | |
|
|
442
|
-
| `job.get` | `getJob` | unverified | | |
|
|
443
|
-
| `job.search` | `searchJobs` | unverified | | |
|
|
444
|
-
| `job.lineItems` | `listJobLineItems` | unverified | | |
|
|
445
|
-
| `job.update` | `updateJob` | unverified | | |
|
|
446
|
-
| `job.markPaid` | `recordJobPayment` | unverified | | |
|
|
447
|
-
| `job.addNote` | `createJobNote` | unverified | | |
|
|
448
|
-
| `technician.list` | `listTechnicians` | unverified | | |
|
|
449
|
-
| `webhook.create` | `createWebhookSubscription` | unverified | | |
|
|
450
|
-
| `webhook.delete` | `deleteWebhookSubscription` | unverified | | |
|
|
451
|
-
| `webhook.verify` | `verifyWebhookSignature` | unverified | | |
|
|
452
|
-
|
|
453
|
-
## Webflow (`webflow`)
|
|
454
|
-
|
|
455
|
-
**No module source available** (No directory named webflow or api-module-webflow). Nothing here is verified; the manifest is still a mock.
|
|
456
|
-
|
|
457
|
-
| Capability | Method | Status | Real signature | Note |
|
|
458
|
-
|---|---|---|---|---|
|
|
459
|
-
| `site.list` | `listSites` | unverified | | |
|
|
460
|
-
| `form.list` | `listForms` | unverified | | |
|
|
461
|
-
| `form.submissions` | `listFormSubmissions` | unverified | | |
|
|
462
|
-
| `webhook.create` | `createWebhook` | unverified | | |
|
|
463
|
-
| `webhook.delete` | `deleteWebhook` | unverified | | |
|
|
464
|
-
| `webhook.verify` | `verifyWebhookSignature` | unverified | | |
|
|
465
|
-
|
|
466
|
-
## Zendesk Support (`zendesk`)
|
|
467
|
-
|
|
468
|
-
**No module source available** (No directory named zendesk or api-module-zendesk). Nothing here is verified; the manifest is still a mock.
|
|
469
|
-
|
|
470
|
-
| Capability | Method | Status | Real signature | Note |
|
|
471
|
-
|---|---|---|---|---|
|
|
472
|
-
| `ticket.get` | `showTicket` | unverified | | |
|
|
473
|
-
| `ticket.update` | `updateTicket` | unverified | | |
|
|
474
|
-
| `ticket.addComment` | `addTicketComment` | unverified | | |
|
|
475
|
-
| `ticket.search` | `searchTickets` | unverified | | |
|
|
476
|
-
| `user.get` | `showUser` | unverified | | |
|
|
477
|
-
| `group.list` | `listGroups` | unverified | | |
|
|
478
|
-
| `webhook.create` | `createWebhook` | unverified | | |
|
|
479
|
-
| `webhook.delete` | `deleteWebhook` | unverified | | |
|
|
480
|
-
| `webhook.verify` | `verifyWebhookSignature` | unverified | | |
|