1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-08-06 03:54:04 +00:00
Automatic multi-tenancy for Laravel. No code changes needed. https://tenancyforlaravel.com
Find a file
lukinovec 76e5f96559
Add LogChannelBootstrapper (#1381)
This PR adds the LogChannelBootstrapper to provide tenant-specific
logging configuration. The bootstrapper automatically configures storage
path channels to use tenant-specific directories (NOTE: for this to work
correctly, the bootstrapper has to run AFTER
FilesystemTenancyBootstrapper, otherwise, the logs still won't be
separated, unless you use overrides) and supports custom channel
overrides for custom logging scenarios -- mapping tenant properties to
the channel config, or using custom closures an array with the logging
config, e.g. for making the slack channel (that's not handled by the
bootstrapper by default) tenant-specific.

The bootstrapper first modifies the channel config, then forgets the
channel from LogManager so that on the next logging attempt, the channel
is re-resolved with the modified config. Otherwise, the channel would
just use the initial config **if the channel was resolved before**. If
the channel wasn't resolved before, it'll always be resolved with the
updated (tenant) config, unless the configuration fails. In that case,
the config will be reverted (the central config will be restored) and
the error will be logged using the original channel.

When using a channel stack, the `stack` channel itself also has to be
forgotten, since the LogManager could retain e.g. the original `stack`
channel's webhook URL, while the underlying `slack` channel would use
the updated one, and while logging, the app would actually use the
initial webhook URL instead of the updated one (encountered this issue
while testing).

Note that **all** channels in `$storagePathChannels` and
`$channelOverrides` are affected.

Also, adding `'attachment' => 'false'` to the slack channel's config
makes the slack channel work with Discord webhooks (just a cool thing we
figured out whlle testing the bootstrapper).

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Samuel Štancl <samuel@archte.ch>
2026-07-08 01:42:05 -07:00
.github [4.x] Laravel 13 support (#1443) 2026-03-18 19:17:28 +01:00
art Update artwork 2020-06-09 15:36:47 +02:00
assets Add LogChannelBootstrapper (#1381) 2026-07-08 01:42:05 -07:00
doctum wip 2023-04-14 17:23:19 +02:00
extensions [4.x] Add DisallowSqliteAttach feature (#1283) 2025-01-04 15:34:37 +01:00
src Add LogChannelBootstrapper (#1381) 2026-07-08 01:42:05 -07:00
tests Add LogChannelBootstrapper (#1381) 2026-07-08 01:42:05 -07:00
typedefs parallel commands: core # autodetect, bugfixes, improved output 2024-09-27 23:02:03 +02:00
.gitattributes misc: update .gitattributes and .nvim.lua 2025-10-13 16:14:15 +02:00
.gitignore Laravel 11 support + Docker improvements (#29) 2024-02-18 00:18:31 +01:00
.nvim.lua misc: update .gitattributes and .nvim.lua 2025-10-13 16:14:15 +02:00
.php-cs-fixer.php [4.x] Cloning: addTenantParameter(bool), domain(string|null) (#1374) 2025-07-29 17:17:32 +02:00
CLAUDE.md [4.x] URL generation, request data identification improvements (#1357) 2025-06-02 03:43:47 +02:00
composer.json [4.x] Update Pest to v4 (#1430) 2026-03-30 09:44:53 +02:00
CONTRIBUTING.md TSP stub: remove unnecessary imports 2025-12-12 20:20:29 +01:00
docker-compose-m1.override.yml use mysql:8 in docker 2025-01-21 15:23:17 +01:00
docker-compose.yml docker: change mssql env yaml syntax 2026-05-01 15:55:06 +02:00
Dockerfile PHP 8.5 support 2025-10-20 01:44:24 +02:00
DONATIONS.md update md files 2020-06-08 22:42:13 +02:00
INTERNAL.md [4.x] Add DisallowSqliteAttach feature (#1283) 2025-01-04 15:34:37 +01:00
LICENSE Initial commit 2019-01-17 22:24:12 +01:00
phpstan.neon globalUrl: useAssetOrigin() instead of setAssetRoot() 2025-11-14 10:59:31 +01:00
phpunit.xml Misc test fixes (#44) 2024-04-06 19:17:34 +02:00
README.md pending tenants: minor cleanup 2025-10-29 22:54:53 +01:00
static_properties.nu util: add static_properties.nu, more portable shebangs, PHP 8.5 beta 2025-09-22 00:20:33 +02:00
SUPPORT.md Discord link 2022-06-13 19:16:35 +02:00
t util: add static_properties.nu, more portable shebangs, PHP 8.5 beta 2025-09-22 00:20:33 +02:00
test util: add static_properties.nu, more portable shebangs, PHP 8.5 beta 2025-09-22 00:20:33 +02:00

Tenancy for Laravel logo

Laravel 11.x Latest Stable Version GitHub Actions CI status Donate

Tenancy for Laravel — stancl/tenancy

Automatic multi-tenancy for your Laravel app.

You won't have to change a thing in your application's code.

  • ✔️ No model traits to change database connection
  • ✔️ No replacing of Laravel classes (Cache, Storage, ...) with tenancy-aware classes
  • ✔️ Built-in tenant identification based on hostname (including second level domains)

Documentation

Documentation can be found here: https://v4.tenancyforlaravel.com

Need help?

Credits