danielburger1337/bff-proxy-bundle

A Symfony bundle that adds the BFF proxy pattern.

Installs: 14

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:symfony-bundle

pkg:composer/danielburger1337/bff-proxy-bundle

v0.1.0 2025-12-18 17:15 UTC

This package is auto-updated.

Last update: 2025-12-18 17:15:47 UTC


README

PHPUnit PHPStan PHPCSFixer Packagist Version Packagist Downloads

danielburger1337/bff-proxy-bundle

A Symfony bundle that implements the proxy for the Backend for Frontends pattern.

The approach this bundle takes is one of composition. It does not provide all of the required functionality of the BFF pattern on its own. Mainly, the OAuth2 token management and authentication at the upstream service is not included in this bundle.

Installation

This library is PSR-4 compatible and can be installed via PHP's dependency manager Composer.

composer require danielburger1337/bff-proxy-bundle

Documentation

TODO

Configuration reference

# config/packages/bff_proxy.yaml
bff_proxy:
    # [Optional] Proxy requests to local API
    local_proxy: local # FALSE will disable feature
    # [Optional] Query parameter to configure runtime options of the proxy
    options_parameter: bff_proxy

    upstreams:
        first-upstream:
            http_client: "@psr18_client_implementation"
            request_factory: "@psr17_factory_implementation"
            stream_factory: "@psr17_factory_implementation"
            http_foundation_factory: "@psr7_to_httpfoundation_bridge"

            # Forward all headers that start with "X-" to the upstream
            passthrough_request_x_headers: false
            # Forward specific headers to the upstream
            passthrough_request_headers: ["my-custom-header"]

            # Proxy all headers that start with "X-" from the upstream to the client
            passthrough_response_x_headers: false
            # Proxy specific headers from the upstream to the client
            passthrough_response_headers: ["upstream-custom-header"]