diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php
index 62b87f0e3a62fe4d7de145da676cc2e169e86f3c..e327d8f7d7271461854e1ab83b957eb25376696c 100644
--- a/.php-cs-fixer.dist.php
+++ b/.php-cs-fixer.dist.php
@@ -3,6 +3,7 @@
 $finder = PhpCsFixer\Finder::create()
     ->in(__DIR__)
     ->exclude('var')
+    ->exclude('bundles')
     ->notPath('config/bundles.php')
 ;
 
diff --git a/composer.json b/composer.json
index 7eb77b090e23fabf1f2fc9eb218b576277b3e2a1..2cbac43c238d1bc151b85d0989dcc5d1d4714af3 100644
--- a/composer.json
+++ b/composer.json
@@ -7,6 +7,7 @@
         "php": ">=7.3",
         "dbp/relay-auth-bundle": "^0.1.4",
         "dbp/relay-core-bundle": "^0.1.36",
+        "dbp/relay-maker-bundle": "^0.1.2",
         "symfony/apache-pack": "^1.0",
         "symfony/console": "^5.4",
         "symfony/dotenv": "^5.4",
diff --git a/composer.lock b/composer.lock
index 3e5275b2b016bb9cf88d5f1ad88c26f6f0e66ec9..b6f94ee617dc099fd1443a485f255305d04b170e 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "b628a7439e897ef39f17e79281daa905",
+    "content-hash": "eb4ec398f2471eda94266f3ca29edd0c",
     "packages": [
         {
             "name": "api-platform/core",
@@ -348,6 +348,44 @@
             "description": "The core bundle of the Relay API gateway",
             "time": "2022-05-11T08:49:59+00:00"
         },
+        {
+            "name": "dbp/relay-maker-bundle",
+            "version": "v0.1.2",
+            "source": {
+                "type": "git",
+                "url": "https://gitlab.tugraz.at/dbp/relay/dbp-relay-maker-bundle",
+                "reference": "343876cd9a3c4ebfcb1bdd35a1a91b1630177da7"
+            },
+            "require": {
+                "php": ">=7.3",
+                "symfony/filesystem": "^5.4",
+                "symfony/framework-bundle": "^5.4",
+                "symfony/process": "^5.4"
+            },
+            "require-dev": {
+                "friendsofphp/php-cs-fixer": "^3.0",
+                "phpstan/phpstan": "^1.0.0",
+                "phpstan/phpstan-phpunit": "^1.0.0",
+                "phpunit/phpunit": "^9",
+                "symfony/browser-kit": "^5.4",
+                "symfony/http-client": "^5.4",
+                "symfony/monolog-bundle": "^3.7",
+                "symfony/phpunit-bridge": "^5.4",
+                "vimeo/psalm": "^4.2.1"
+            },
+            "type": "symfony-bundle",
+            "autoload": {
+                "psr-4": {
+                    "Dbp\\Relay\\MakerBundle\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "AGPL-3.0-or-later"
+            ],
+            "description": "A maker bundle for the Relay API gateway",
+            "time": "2022-06-20T11:55:49+00:00"
+        },
         {
             "name": "doctrine/annotations",
             "version": "1.13.2",
@@ -4907,6 +4945,68 @@
             ],
             "time": "2022-05-24T11:49:31+00:00"
         },
+        {
+            "name": "symfony/process",
+            "version": "v5.4.8",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/process.git",
+                "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/process/zipball/597f3fff8e3e91836bb0bd38f5718b56ddbde2f3",
+                "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/polyfill-php80": "^1.16"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Process\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Executes commands in sub-processes",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/process/tree/v5.4.8"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-04-08T05:07:18+00:00"
+        },
         {
             "name": "symfony/property-access",
             "version": "v5.4.8",
@@ -10453,68 +10553,6 @@
             ],
             "time": "2022-04-12T15:48:08+00:00"
         },
-        {
-            "name": "symfony/process",
-            "version": "v5.4.8",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/process.git",
-                "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/process/zipball/597f3fff8e3e91836bb0bd38f5718b56ddbde2f3",
-                "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.2.5",
-                "symfony/polyfill-php80": "^1.16"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Process\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Executes commands in sub-processes",
-            "homepage": "https://symfony.com",
-            "support": {
-                "source": "https://github.com/symfony/process/tree/v5.4.8"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2022-04-08T05:07:18+00:00"
-        },
         {
             "name": "symfony/stopwatch",
             "version": "v5.4.5",
diff --git a/config/bundles.php b/config/bundles.php
index aae8855e1acadbe2cd5fd47f43f09379fdedf72a..b4964470e6eb8e045e4ded37dfac5a177cbf9359 100644
--- a/config/bundles.php
+++ b/config/bundles.php
@@ -11,5 +11,6 @@ return [
     Nelmio\CorsBundle\NelmioCorsBundle::class => ['all' => true],
     ApiPlatform\Core\Bridge\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true],
     Dbp\Relay\AuthBundle\DbpRelayAuthBundle::class => ['all' => true],
+    Dbp\Relay\MakerBundle\DbpRelayMakerBundle::class => ['all' => true],
     Dbp\Relay\CoreBundle\DbpRelayCoreBundle::class => ['all' => true],
 ];
diff --git a/symfony.lock b/symfony.lock
index b9e3e152730202d611c439f60a674c6f3993687b..b7ad95e46f87f5fceb88b2917c38a15881a4f6c1 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -58,6 +58,15 @@
             "config/packages/dbp_relay_core.yaml"
         ]
     },
+    "dbp/relay-maker-bundle": {
+        "version": "0.1",
+        "recipe": {
+            "repo": "github.com/digital-blueprint/symfony-recipes",
+            "branch": "main",
+            "version": "0.1",
+            "ref": "087f81f9b8ee1c7956ecf00f7ea2f8276adae844"
+        }
+    },
     "dnoegel/php-xdg-base-dir": {
         "version": "v0.1.1"
     },