1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-08-06 04:54:04 +00:00
tenancy/tests
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
..
Bootstrappers Add LogChannelBootstrapper (#1381) 2026-07-08 01:42:05 -07:00
Etc [MINOR BC BREAK] Syncing: PivotWithRelation -> PivotWithCentralResource 2025-11-26 05:52:55 +01:00
Features Add TenantConfigBootstrapper, deprecate Feature implementation 2025-09-26 13:49:15 +02:00
RLS [4.x] Fix dropRLSPolicies() (#1413) 2025-11-08 00:52:08 +01:00
ActionTest.php resolve minor todos 2025-08-18 15:05:17 +02:00
AutomaticModeTest.php [4.x] Add Tenancy::reinitialize() method (#1449) 2026-04-08 19:21:43 +02:00
BroadcastingTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
CachedTenantResolverTest.php Make globalCache always use central conn with DB cache stores (#1462) 2026-06-27 18:30:01 -07:00
CloneActionTest.php Cloning: improve type annotations, add cloneRoutes() for convenience 2025-11-10 02:16:57 +01:00
CombinedDomainAndSubdomainIdentificationTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
CommandsTest.php migrate-fresh: show migration output when verbose (#1464) 2026-06-28 19:04:02 -07:00
DatabaseCacheBootstrapperTest.php [4.x] Support database cache store tenancy (#1290) (resolve #852) 2025-08-08 00:54:01 +02:00
DatabasePreparationTest.php Skip DB deletion when create_database=false, add ignoreFailures (#1394) 2026-05-01 21:57:19 +02:00
DatabaseUsersTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
DeleteDomainsJobTest.php Resolve test to-dos (#45) 2024-04-18 00:22:03 +02:00
DomainTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
EarlyIdentificationTest.php Correct DomainTenantResolver::isSubdomain() check (#1425) 2026-05-11 14:26:06 +02:00
EventListenerTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
GlobalCacheTest.php Make globalCache always use central conn with DB cache stores (#1462) 2026-06-27 18:30:01 -07:00
InitializedBootstrappersTest.php [4.x] Only revert initialized bootstrappers (#1385) 2025-08-05 11:12:25 +02:00
MailTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
MaintenanceModeTest.php Fix #1404: support universal routes in CheckTenantForMaintenanceMode 2025-10-14 17:22:35 +02:00
ManualModeTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
OriginHeaderIdentificationTest.php fix origin identification: parse hostname when full URL is used 2025-07-14 21:44:12 +02:00
PathIdentificationTest.php [4.x] Test that route model binding works correctly with path identification (#1360) 2025-06-02 19:05:17 +02:00
PendingTenantsTest.php [MINOR BC] Fix pending tenant pull race conditions (#1463) 2026-06-25 19:51:39 -07:00
Pest.php [4.x] Support database cache store tenancy (#1290) (resolve #852) 2025-08-08 00:54:01 +02:00
PreventAccessFromUnwantedDomainsTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
QueueTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
RequestDataIdentificationTest.php [4.x] Resolve testing todos (#1361) 2025-08-03 23:21:03 +02:00
ResourceSyncingTest.php Fix duplicate entry error when updating TenantPivot columns (#1469) 2026-07-07 18:56:34 -07:00
RouteMiddlewareTest.php Instead of assigning $innerMiddleware during group MW unpacking, merge it (#1371) 2025-07-01 17:23:13 +02:00
RunForMultipleTest.php [4.x] Fix 1267: early return in runForMultiple if an empty array is passed (#1286) 2025-02-14 08:19:02 +01:00
ScopeSessionsTest.php [4.x] Make ScopeSessions usable on universal routes (#1342) 2025-04-04 03:15:37 +02:00
SessionSeparationTest.php [4.x] Laravel 13 support (#1443) 2026-03-18 19:17:28 +01:00
SingleDatabaseTenancyTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
SingleDomainTenantTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
SubdomainTest.php Correct DomainTenantResolver::isSubdomain() check (#1425) 2026-05-11 14:26:06 +02:00
TenantAssetTest.php Remove TestCase::randomString() 2025-08-25 17:43:45 +02:00
TenantAwareCommandTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00
TenantDatabaseManagerTest.php Parameter validation and other DB manager improvements (#1459) 2026-06-27 19:51:30 -07:00
TenantModelTest.php Add UUIDv7Generator 2025-11-04 15:45:48 +01:00
TenantUserImpersonationTest.php [MINOR BC] UserImpersonation: store auth guard in session, add $logout param to stopImpersonating() (#1437) 2026-06-05 14:15:19 -07:00
TestCase.php Add LogChannelBootstrapper (#1381) 2026-07-08 01:42:05 -07:00
UniversalRouteTest.php [4.x] Laravel 12 support (#1321) 2025-02-25 16:26:18 +01:00