Flex Forms public API
Stable extension points for host applications integrating with Filament Flex Forms.Model customization
Bjanczak\FilamentFlexForms\FlexFormsuseFormModel(),useSubmissionModel(),useConnectionModel(),useDeliveryModel()formModel(),submissionModel(),connectionModel(),deliveryModel()
Filament plugin
Bjanczak\FilamentFlexForms\FilamentFlexFormsPluginregisterIntegration(string|IntegrationDriver $driver)discoverIntegrations(string $path)registerPostSubmitAction(string $class)configureFormsTable(Closure $callback)/getConfigureFormsTable()configureSubmissionsTable(Closure $callback)/getConfigureSubmissionsTable()modifyFormsEloquentQueryUsing(Closure $callback)/getModifyFormsEloquentQueryUsing()modifySubmissionsEloquentQueryUsing(Closure $callback)/getModifySubmissionsEloquentQueryUsing()modifyConnectionsEloquentQueryUsing(Closure $callback)/getModifyConnectionsEloquentQueryUsing()resolveConnectionTenantIdUsing(Closure $callback)/resolveConnectionTenantId()pushSubmissionMiddleware(string $class)
Integrations
-
Bjanczak\FilamentFlexForms\Integrations\IntegrationRegistryregister(IntegrationDriver|string $driver)registerMany(iterable $drivers)discover()all(),get(string $key),has(string $key)
-
Bjanczak\FilamentFlexForms\Integrations\Contracts\IntegrationDriver -
Bjanczak\FilamentFlexForms\Integrations\Contracts\SupportsInboundWebhooks -
Bjanczak\FilamentFlexForms\Integrations\Contracts\SupportsScheduledSync -
Generic driver bases:
Bjanczak\FilamentFlexForms\Integrations\Support\Generic\GenericApiIntegrationDriverBjanczak\FilamentFlexForms\Integrations\Support\Generic\GenericOAuthIntegrationDriver(PKCE S256 by default)Bjanczak\FilamentFlexForms\Integrations\Support\Generic\GenericSignedWebhookDriverBjanczak\FilamentFlexForms\Integrations\Support\Generic\VerifiesFlexFormsInboundSignature
-
Field mapping:
Bjanczak\FilamentFlexForms\Integrations\Mapping\FieldMapperBjanczak\FilamentFlexForms\Integrations\Mapping\FieldMappingBjanczak\FilamentFlexForms\Integrations\Mapping\LegacyFieldMappingAdapterBjanczak\FilamentFlexForms\Integrations\Mapping\FieldTransformRegistry
-
OAuth helpers:
Bjanczak\FilamentFlexForms\Integrations\Support\OAuth\OAuthTokenDataBjanczak\FilamentFlexForms\Integrations\Support\OAuth\OAuthTokenManagerBjanczak\FilamentFlexForms\Integrations\Support\OAuth\DeviceCodeOAuthFlow
-
HTTP / auth helpers:
Bjanczak\FilamentFlexForms\Integrations\Support\Http\GraphQlClientBjanczak\FilamentFlexForms\Integrations\Support\Saml\SamlAssertionConsumerBjanczak\FilamentFlexForms\Integrations\Support\ConnectionCredentialResolverBjanczak\FilamentFlexForms\Integrations\Support\InboundWebhookResult
-
Credential mode enum:
Bjanczak\FilamentFlexForms\Integrations\Support\CredentialMode
Post-submit actions
Bjanczak\FilamentFlexForms\Contracts\PostSubmitActionBjanczak\FilamentFlexForms\Support\PostSubmit\PostSubmitActionRegistry
Submission pipeline
Bjanczak\FilamentFlexForms\Contracts\SubmissionMiddlewareBjanczak\FilamentFlexForms\Support\Pipeline\SubmissionPipeline
Submission context
Bjanczak\FilamentFlexForms\Support\SubmissionContext
Events
Bjanczak\FilamentFlexForms\Events\FormSubmissionCompletedBjanczak\FilamentFlexForms\Events\FormSubmissionPartialSavedBjanczak\FilamentFlexForms\Events\FormSubmissionDeletedBjanczak\FilamentFlexForms\Events\FormCreatedBjanczak\FilamentFlexForms\Events\FormUpdatedBjanczak\FilamentFlexForms\Events\FormDeletedBjanczak\FilamentFlexForms\Events\FormPublishedBjanczak\FilamentFlexForms\Events\FormUnpublishedBjanczak\FilamentFlexForms\Events\IntegrationDispatchSucceededBjanczak\FilamentFlexForms\Events\IntegrationDispatchFailedBjanczak\FilamentFlexForms\Events\IntegrationDeliveryReplayedBjanczak\FilamentFlexForms\Events\IntegrationInboundReceivedBjanczak\FilamentFlexForms\Events\IntegrationInboundFailedBjanczak\FilamentFlexForms\Events\PostSubmitActionSucceededBjanczak\FilamentFlexForms\Events\PostSubmitActionFailedBjanczak\FilamentFlexForms\Events\PaymentCapturedBjanczak\FilamentFlexForms\Events\PaymentFailedBjanczak\FilamentFlexForms\Events\PaymentRefunded
Artisan
flex-forms:upgrade—Bjanczak\FilamentFlexForms\Commands\UpgradeCommandflex-forms:make-integration {name} {--api} {--oauth} {--webhook} {--inbound}— scaffold host integration driversflex-forms:sync-integrations {--driver=} {--connection=}— run scheduled remote sync for drivers implementingSupportsScheduledSync
Testing helpers
Bjanczak\FilamentFlexForms\Testing\IntegrationDriverTestCaseBjanczak\FilamentFlexForms\Testing\AssertsIntegrationDriverContract(Pest-friendly trait)
Configuration
config/filament-flex-forms.php:
OAuth / inbound routes
GET /flex-forms/connections/oauth/redirect/{connection}(flex-forms.connections.oauth.redirect, auth required)GET /flex-forms/connections/oauth/callback(flex-forms.connections.oauth.callback; connection id in signed state)POST /flex-forms/integrations/{driver}/webhook(flex-forms.integrations.inbound.webhook) — drivers implementingSupportsInboundWebhooks