From fca8ddc840aae23c33a108f726c8d34556b154c3 Mon Sep 17 00:00:00 2001 From: Jon Behr Date: Mon, 12 Oct 2026 10:12:53 +0000 Subject: [PATCH 1/2] Run confirmed migrations without a second prompt sp:install creates the .env file while it is running, so the application is still in the production environment when it runs migrations. Laravel's migrate command then asks "Are you sure you want to run this command?" with "No" as the default, after the user has already agreed to run migrations. Accepting that default skipped the migrations, printed "Database migrations successful" anyway, and crashed on the missing users table. Pass --force since the user has already confirmed, and only report success if migrate succeeds. Affects sp:install and sp:upgrade. Amp-Thread-ID: https://ampcode.com/threads/T-01a12ce4-5849-7298-9b52-0f19594ee434 --- app/Traits/HasSendportalMigrationHandlers.php | 7 ++- tests/Feature/Setup/MigrationHandlersTest.php | 48 +++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 tests/Feature/Setup/MigrationHandlersTest.php diff --git a/app/Traits/HasSendportalMigrationHandlers.php b/app/Traits/HasSendportalMigrationHandlers.php index b286b333..2e301838 100644 --- a/app/Traits/HasSendportalMigrationHandlers.php +++ b/app/Traits/HasSendportalMigrationHandlers.php @@ -38,7 +38,12 @@ protected function runMigrations(): bool return false; } - $this->call('migrate'); + // The user has already confirmed, so skip migrate's production prompt. When sp:install creates + // the .env file, the running application is still in production and that prompt defaults to no. + if ($this->call('migrate', ['--force' => true]) !== self::SUCCESS) { + return false; + } + $this->info('✓ Database migrations successful'); return true; diff --git a/tests/Feature/Setup/MigrationHandlersTest.php b/tests/Feature/Setup/MigrationHandlersTest.php new file mode 100644 index 00000000..d7edbc64 --- /dev/null +++ b/tests/Feature/Setup/MigrationHandlersTest.php @@ -0,0 +1,48 @@ +artisan('db:wipe', ['--force' => true])->run(); + + // sp:install starts before .env exists, so the application runs as production. + $this->app['env'] = 'production'; + + Artisan::registerCommand(new class () extends BaseCommand { + use HasSendportalMigrationHandlers; + + protected $signature = 'test:check-migrations'; + + protected $migrator; + + public function handle(): int + { + $this->migrator = app('migrator'); + + $this->checkMigrations(); + + return 0; + } + }); + + $this->artisan('test:check-migrations') + ->expectsConfirmation('There are pending database migrations. Would you like to run migrations now?', 'yes') + ->expectsOutput('✓ Database migrations successful') + ->assertExitCode(0); + + self::assertTrue(Schema::hasTable('users')); + } +} From 659f60dc31754087723cc3b12300db514cc42870 Mon Sep 17 00:00:00 2001 From: JonoB Date: Mon, 12 Oct 2026 10:14:16 +0000 Subject: [PATCH 2/2] Apply php-cs-fixer changes --- .php-cs-fixer.cache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.php-cs-fixer.cache b/.php-cs-fixer.cache index b5bf0d87..0d561ba0 100644 --- a/.php-cs-fixer.cache +++ b/.php-cs-fixer.cache @@ -1 +1 @@ -{"php":"8.1.12","version":"3.13.0","indent":" ","lineEnding":"\n","rules":{"blank_line_after_opening_tag":true,"blank_line_between_import_groups":true,"braces":{"allow_single_line_anonymous_class_with_empty_body":true},"class_definition":{"inline_constructor_arguments":false,"space_before_parenthesis":true},"compact_nullable_typehint":true,"declare_equal_normalize":true,"lowercase_cast":true,"lowercase_static_reference":true,"new_with_braces":true,"no_blank_lines_after_class_opening":true,"no_leading_import_slash":true,"no_whitespace_in_blank_line":true,"ordered_class_elements":{"order":["use_trait"]},"ordered_imports":{"imports_order":["class","function","const"],"sort_algorithm":"alpha"},"return_type_declaration":true,"short_scalar_cast":true,"single_blank_line_before_namespace":true,"single_import_per_statement":{"group_to_single_imports":false},"single_trait_insert_per_statement":true,"ternary_operator_spaces":true,"visibility_required":true,"blank_line_after_namespace":true,"constant_case":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":{"on_multiline":"ensure_fully_multiline"},"no_break_comment":true,"no_closing_tag":true,"no_space_around_double_colon":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":{"elements":["property"]},"single_line_after_imports":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"encoding":true,"full_opening_tag":true,"array_syntax":{"syntax":"short"},"no_unused_imports":true,"no_empty_statement":true,"no_useless_return":true,"not_operator_with_successor_space":true,"explicit_string_variable":true,"simple_to_complex_string_variable":true,"array_indentation":true,"blank_line_before_statement":{"statements":["case","default","declare","do","goto","if","include","include_once","require","require_once","switch","try"]}},"hashes":{"routes\/console.php":"043de8d2168ad1c2f19f1f32431ca640","routes\/api.php":"1cfef62d42fc585043690f50f0d7816f","routes\/web.php":"765479749fce08c21ce3c82878dc68e5","routes\/channels.php":"edadd8dfa4a96a42dde09f4ba1362bbd","database\/seeders\/DatabaseSeeder.php":"863fc820d5b1b26b07ff78678e75c600","database\/factories\/UserFactory.php":"14bb2790d699e4c12d3c921413397816","database\/factories\/InvitationFactory.php":"5d7806ef7213f9b8d0ccb1a67572c1c2","database\/factories\/ApiTokenFactory.php":"39a07fd93703811c1e8138c90f617cc5","database\/factories\/WorkspaceFactory.php":"8eb260ed12b4aeef9662731f5f927524","database\/migrations\/2014_10_12_000000_create_users_table.php":"6f6305c9621dc43a7e4e67692f74823a","database\/migrations\/2019_08_19_000000_create_failed_jobs_table.php":"2d2101455252f967fc9f40bdfd44c96f","database\/migrations\/2017_04_11_100000_create_invitations_table.php":"4498012dc9968cfbe113a08f39ee14da","database\/migrations\/2021_01_26_151747_remove_api_token_from_users_table.php":"768971eed7996a173e67e9367cab22ef","database\/migrations\/2019_08_24_114758_adjust_users_table.php":"8a5aee2cd552991b28f0d9633d54efe9","database\/migrations\/2017_04_11_000000_create_workspaces_table.php":"523915ba995bcc529a38261248825b82","database\/migrations\/2020_11_13_120125_create_api_tokens_table.php":"7ee00241a111ac86e6ce713f220dfa0c","database\/migrations\/2014_10_12_100000_create_password_resets_table.php":"6a565de52ad5c704c0a50d9da2dce231","app\/Providers\/EventServiceProvider.php":"34a080e907226081e6958d8e1611101e","app\/Providers\/AppServiceProvider.php":"238832fb41ec4d01ea13a4e3d8688b1f","app\/Providers\/BroadcastServiceProvider.php":"0ee72a104b9018e848f386a2d425bd36","app\/Providers\/HorizonServiceProvider.php":"7b22e94cc33bfe5edadd55ddbb24bbf8","app\/Providers\/AuthServiceProvider.php":"e6e625536689ce1bf6cfa9a02e66457f","app\/Providers\/RouteServiceProvider.php":"89a38040e0eb44cbd3c9fd286eb55f39","app\/Setup\/WritesToEnvironment.php":"b44dd1d8d356f69bb27369f59de68296","app\/Setup\/Migrations.php":"442db278c9932e2729addf6e619e01d6","app\/Setup\/Admin.php":"e4685eb3e4243ccf9131cd1a11bfe1a3","app\/Setup\/Env.php":"b93a8f6fe59cc983f49f3c8cc33bc064","app\/Setup\/Database.php":"39161becadde353e1bd8b8f4e2afebdb","app\/Setup\/Key.php":"611620a7586d5319931c3aab0801e66a","app\/Setup\/Url.php":"462d49f15cb5b38e81cd41b479f520c2","app\/Setup\/StepInterface.php":"95ef7030278de820339ab94bbbbbf231","app\/Models\/User.php":"4a2f6361032921bc17bbea9d540b3527","app\/Models\/ApiToken.php":"24bb163dec324c56b5a763f6e473671b","app\/Models\/Invitation.php":"5f1116032f469de07b258c28a04d2630","app\/Models\/Workspace.php":"d1ea509954f2474880e6074aada00b91","app\/Livewire\/Setup.php":"1e1c86301c8c7f0b2a128e90d5c203a6","app\/Http\/Middleware\/Authenticate.php":"1a28ab8a480d33b5e262412c084e77b2","app\/Http\/Middleware\/TrustProxies.php":"80202bd7bf4c31e901f1043346b82dad","app\/Http\/Middleware\/LocaleMiddleware.php":"1386bc4ac32df382c5631101b0f9339e","app\/Http\/Middleware\/VerifyCsrfToken.php":"707f8a5975d94d67dc2e9f5b6c561cef","app\/Http\/Middleware\/RequireWorkspace.php":"410b7682a4f21bfb81143d6469eaaa77","app\/Http\/Middleware\/EncryptCookies.php":"f6f49f8cb83225155ebe207c0eb24c18","app\/Http\/Middleware\/RedirectIfAuthenticated.php":"ddbd033d07f29b97941e2e021a78eab4","app\/Http\/Middleware\/OwnsRequestedWorkspace.php":"99b3eb77cb33c12f4630f0ff0bf0a84e","app\/Http\/Middleware\/OwnsCurrentWorkspace.php":"ddd644de44de55bed0d14a058534da5f","app\/Http\/Middleware\/CheckForMaintenanceMode.php":"13fecdea17d95ffe8f70fe3c56e0f497","app\/Http\/Middleware\/TrustHosts.php":"181bdfdfebffb2e8019806a7b3c061bd","app\/Http\/Middleware\/TrimStrings.php":"6147464a2cd11a9b32189c718f3e1fa5","app\/Http\/Controllers\/Auth\/ApiTokenController.php":"422df9c575b44baa0dd4554037164745","app\/Http\/Controllers\/Auth\/RegisterController.php":"64b03c166cb7e856f631bae916199add","app\/Http\/Controllers\/Auth\/VerificationController.php":"1b6f2e916bde69d3275883aae411f78d","app\/Http\/Controllers\/Auth\/ForgotPasswordController.php":"b06419407998c87cf5d89c8936f87810","app\/Http\/Controllers\/Auth\/ChangePasswordController.php":"057201b4f14d70c5d8450966943f7a9b","app\/Http\/Controllers\/Auth\/ConfirmPasswordController.php":"3ce0c3b0a4be919bdb39e7bd7e42a894","app\/Http\/Controllers\/Auth\/LoginController.php":"51e0c4938d8568990326a16f47993774","app\/Http\/Controllers\/Auth\/ResetPasswordController.php":"17de80faf8d3652db1277c64cd7cab1d","app\/Http\/Controllers\/Auth\/ProfileController.php":"462ff2a3b6ada8b9cb72b9000209e321","app\/Http\/Controllers\/SetupController.php":"40bc4b1d3b35aff81cec5c8d78c4754e","app\/Http\/Controllers\/Controller.php":"d2ab2e1e385a80aec6042dc23e7f86eb","app\/Http\/Controllers\/Workspaces\/WorkspaceUsersController.php":"dd2091a562bfc77ce849fff6720ebd86","app\/Http\/Controllers\/Workspaces\/WorkspaceInvitationsController.php":"62695e110bd391adeabdf9370d7e6336","app\/Http\/Controllers\/Workspaces\/SwitchWorkspaceController.php":"1ec0a5dc7c84a8409f4526a47a634497","app\/Http\/Controllers\/Workspaces\/PendingInvitationController.php":"0114fff979705de8bee82e163235482e","app\/Http\/Controllers\/Workspaces\/WorkspacesController.php":"a685eff29367597c4e6f6e706b005add","app\/Http\/Kernel.php":"1dfadea0c178c607de61469a99f0f89f","app\/Http\/Resources\/Workspace.php":"d067a6f07bd550d4153c310c28715681","app\/Http\/Requests\/ApiTokens\/ApiTokenStoreRequest.php":"56c01901a407bb57f20dd618b4fdf89e","app\/Http\/Requests\/Workspaces\/CreateWorkspaceRequest.php":"c07da30174e0dd1a6815cffb3ca2c831","app\/Http\/Requests\/Workspaces\/WorkspaceUpdateRequest.php":"a1308a6bc8750c36ce811f1e8265b365","app\/Http\/Requests\/Workspaces\/WorkspaceInvitationStoreRequest.php":"71ada4990b3bd30b067d90e0ac67bad0","app\/Http\/Requests\/Workspaces\/WorkspaceStoreRequest.php":"1b397a607f55c196444bb5873f0c4224","app\/Http\/Requests\/ChangePasswordRequest.php":"425a965157b3e251d5fa51fb925f2697","app\/Http\/Requests\/ProfileUpdateRequest.php":"a910df5bf61b4ca7bbccb3f3bca9c082","app\/Exceptions\/Handler.php":"665c24eba27dfb276eac81356caedb56","app\/Console\/Commands\/InstallApplication.php":"c31897e6a3c43e30a5836f31b724f5cc","app\/Console\/Commands\/UpgradeApplication.php":"979a37cd757e85d83bb11eba093d0c1a","app\/Console\/Kernel.php":"df2152f06cd07c8e95e36e6afab01c76","app\/Traits\/ChecksInvitations.php":"66c0b922807da00a39471ab9281ce800","app\/Traits\/HasWorkspaces.php":"3b1f1c3bfb64c0485cdbe9c7e22bde30","app\/Traits\/HasSendportalCommandUtilities.php":"4d212d734d0fec6ad91ec58ce300cdc1","app\/Traits\/HasSendportalMigrationHandlers.php":"5c6a183868a086ed718dd85b7f9e1669","app\/Rules\/ValidInvitation.php":"e289a4ac9b5452ce039f9717fbbd57d4","app\/Repositories\/ApiTokenRepository.php":"2e749016d2e80736d99282762bc27e30","app\/Repositories\/WorkspacesRepository.php":"045fd3222c05c6ee10db83e5890c277d","app\/Services\/Workspaces\/AcceptInvitation.php":"b22d7bf8cb78c6b962728d43efcae37e","app\/Services\/Workspaces\/RemoveUserFromWorkspace.php":"e0b7cf22bd2106992f231e3541538a41","app\/Services\/Workspaces\/SendInvitation.php":"41e73e828863468e8433dd8631e2edbb","app\/Services\/Workspaces\/CreateWorkspace.php":"056f398e6a43ed813289dc41c01c5cdd","app\/Services\/Workspaces\/AddWorkspaceMember.php":"910c9a8d07a0579f7012f4c2183f9a9f","server.php":"323b10ec66fb238f6e9897ab36c825b3","config\/sendportal-host.php":"39ddd885f8fd2f326ad15646cf9a69f5","config\/filesystems.php":"137ee6ce65c76f00f676a9d2a3786a36","config\/queue.php":"db0dbed09037496aeb217ae090bbae29","config\/auth.php":"c6d98a3371702805b1143939f0180717","config\/mail.php":"1ef213740cec34cd746079abc9ba275a","config\/view.php":"24e00ccca17634d028fbbfdafd9e7461","config\/horizon.php":"09cf662fcfc7ea53b81b1e0d41deed68","config\/app.php":"a4fe6d4478eb85079fd59964ec1a8869","config\/cache.php":"c266e9b2172f63354184e1be8bf9763e","config\/broadcasting.php":"bf5b67dc7929b3c338925e1ff5b2c43c","config\/hashing.php":"993f7bd4607853d3905cbdb68e27331d","config\/services.php":"601a15384d0786875b6e009f1aff45e4","config\/database.php":"8b1b900d640813d259a43082fa433c10","config\/session.php":"a0eb60b59d22b34e253bd25ea0869932","config\/logging.php":"2d16257864aa0d12378e82882cfd17c3","config\/sendportal.php":"41cd7d8566ea01a15b9f4a25f5083b3f","config\/cors.php":"c50ff880307bd72e3271f2ec32b78f5e","tests\/TestSupportTrait.php":"c0c6eb36887e08a46d48abc2632e7f50","tests\/Unit\/ExampleTest.php":"27eacc0fde35be1db9c989b11cbbf18f","tests\/TestCase.php":"8dbce99cc4820fc4b8ece1da1b8c26af","tests\/CreatesApplication.php":"cb2f21cebfcc89f2c0d910dcc8c98815","tests\/Feature\/Auth\/AuthConfigEnabledTest.php":"20f56f205e27b839203871a5d42e3dc2","tests\/Feature\/Auth\/WorkspaceApiTokenTest.php":"f88035c2ef21a5ab506432afb5d14a97","tests\/Feature\/Auth\/AuthConfigDisabledTest.php":"70b9f8eca37e988e3b42c56cb0c729a4","tests\/Feature\/Invitations\/NewUserInvitationTest.php":"2649b09b33846006b29a4e13e1532709","tests\/Feature\/Invitations\/ExistingUserInvitationTest.php":"b61fc16b31b9586a0d65a706e32cbd4d","tests\/Feature\/Setup\/SetupControllerTest.php":"6950e9d0dd7037abfc34cba83c7c359a","tests\/Feature\/Setup\/SetupTest.php":"a2a32f9274435305ec4afd1047813184","tests\/Feature\/Workspaces\/WorkspaceRequiredTest.php":"f243fdd3c8ec97dd5f2ac2600584cbde","tests\/Feature\/Workspaces\/WorkspacesControllerTest.php":"a97f8b2ee3d3351ce540197a2b7c5661","tests\/Feature\/Workspaces\/SwitchWorkspaceTest.php":"25b9cf82c1a43acd842852180e5e5441","tests\/Feature\/Workspaces\/WorkspaceInvitationsControllerTest.php":"e7d37474ad42c9400b814761910d0773","tests\/Feature\/Workspaces\/WorkspaceUserControllerTest.php":"43e77695602d717c46b0cd1431764127","app\/Http\/Middleware\/PreventRequestForgery.php":"e84d63de05267804d02c78acfd2dd5db"}} \ No newline at end of file +{"php":"8.1.12","version":"3.13.0","indent":" ","lineEnding":"\n","rules":{"blank_line_after_opening_tag":true,"blank_line_between_import_groups":true,"braces":{"allow_single_line_anonymous_class_with_empty_body":true},"class_definition":{"inline_constructor_arguments":false,"space_before_parenthesis":true},"compact_nullable_typehint":true,"declare_equal_normalize":true,"lowercase_cast":true,"lowercase_static_reference":true,"new_with_braces":true,"no_blank_lines_after_class_opening":true,"no_leading_import_slash":true,"no_whitespace_in_blank_line":true,"ordered_class_elements":{"order":["use_trait"]},"ordered_imports":{"imports_order":["class","function","const"],"sort_algorithm":"alpha"},"return_type_declaration":true,"short_scalar_cast":true,"single_blank_line_before_namespace":true,"single_import_per_statement":{"group_to_single_imports":false},"single_trait_insert_per_statement":true,"ternary_operator_spaces":true,"visibility_required":true,"blank_line_after_namespace":true,"constant_case":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":{"on_multiline":"ensure_fully_multiline"},"no_break_comment":true,"no_closing_tag":true,"no_space_around_double_colon":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":{"elements":["property"]},"single_line_after_imports":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"encoding":true,"full_opening_tag":true,"array_syntax":{"syntax":"short"},"no_unused_imports":true,"no_empty_statement":true,"no_useless_return":true,"not_operator_with_successor_space":true,"explicit_string_variable":true,"simple_to_complex_string_variable":true,"array_indentation":true,"blank_line_before_statement":{"statements":["case","default","declare","do","goto","if","include","include_once","require","require_once","switch","try"]}},"hashes":{"routes\/console.php":"043de8d2168ad1c2f19f1f32431ca640","routes\/api.php":"1cfef62d42fc585043690f50f0d7816f","routes\/web.php":"765479749fce08c21ce3c82878dc68e5","routes\/channels.php":"edadd8dfa4a96a42dde09f4ba1362bbd","database\/seeders\/DatabaseSeeder.php":"863fc820d5b1b26b07ff78678e75c600","database\/factories\/UserFactory.php":"14bb2790d699e4c12d3c921413397816","database\/factories\/InvitationFactory.php":"5d7806ef7213f9b8d0ccb1a67572c1c2","database\/factories\/ApiTokenFactory.php":"39a07fd93703811c1e8138c90f617cc5","database\/factories\/WorkspaceFactory.php":"8eb260ed12b4aeef9662731f5f927524","database\/migrations\/2014_10_12_000000_create_users_table.php":"6f6305c9621dc43a7e4e67692f74823a","database\/migrations\/2019_08_19_000000_create_failed_jobs_table.php":"2d2101455252f967fc9f40bdfd44c96f","database\/migrations\/2017_04_11_100000_create_invitations_table.php":"4498012dc9968cfbe113a08f39ee14da","database\/migrations\/2021_01_26_151747_remove_api_token_from_users_table.php":"768971eed7996a173e67e9367cab22ef","database\/migrations\/2019_08_24_114758_adjust_users_table.php":"8a5aee2cd552991b28f0d9633d54efe9","database\/migrations\/2017_04_11_000000_create_workspaces_table.php":"523915ba995bcc529a38261248825b82","database\/migrations\/2020_11_13_120125_create_api_tokens_table.php":"7ee00241a111ac86e6ce713f220dfa0c","database\/migrations\/2014_10_12_100000_create_password_resets_table.php":"6a565de52ad5c704c0a50d9da2dce231","app\/Providers\/EventServiceProvider.php":"34a080e907226081e6958d8e1611101e","app\/Providers\/AppServiceProvider.php":"238832fb41ec4d01ea13a4e3d8688b1f","app\/Providers\/BroadcastServiceProvider.php":"0ee72a104b9018e848f386a2d425bd36","app\/Providers\/HorizonServiceProvider.php":"7b22e94cc33bfe5edadd55ddbb24bbf8","app\/Providers\/AuthServiceProvider.php":"e6e625536689ce1bf6cfa9a02e66457f","app\/Providers\/RouteServiceProvider.php":"89a38040e0eb44cbd3c9fd286eb55f39","app\/Setup\/WritesToEnvironment.php":"b44dd1d8d356f69bb27369f59de68296","app\/Setup\/Migrations.php":"442db278c9932e2729addf6e619e01d6","app\/Setup\/Admin.php":"e4685eb3e4243ccf9131cd1a11bfe1a3","app\/Setup\/Env.php":"b93a8f6fe59cc983f49f3c8cc33bc064","app\/Setup\/Database.php":"39161becadde353e1bd8b8f4e2afebdb","app\/Setup\/Key.php":"611620a7586d5319931c3aab0801e66a","app\/Setup\/Url.php":"462d49f15cb5b38e81cd41b479f520c2","app\/Setup\/StepInterface.php":"95ef7030278de820339ab94bbbbbf231","app\/Models\/User.php":"4a2f6361032921bc17bbea9d540b3527","app\/Models\/ApiToken.php":"24bb163dec324c56b5a763f6e473671b","app\/Models\/Invitation.php":"5f1116032f469de07b258c28a04d2630","app\/Models\/Workspace.php":"d1ea509954f2474880e6074aada00b91","app\/Livewire\/Setup.php":"1e1c86301c8c7f0b2a128e90d5c203a6","app\/Http\/Middleware\/Authenticate.php":"1a28ab8a480d33b5e262412c084e77b2","app\/Http\/Middleware\/TrustProxies.php":"80202bd7bf4c31e901f1043346b82dad","app\/Http\/Middleware\/LocaleMiddleware.php":"1386bc4ac32df382c5631101b0f9339e","app\/Http\/Middleware\/VerifyCsrfToken.php":"707f8a5975d94d67dc2e9f5b6c561cef","app\/Http\/Middleware\/RequireWorkspace.php":"410b7682a4f21bfb81143d6469eaaa77","app\/Http\/Middleware\/EncryptCookies.php":"f6f49f8cb83225155ebe207c0eb24c18","app\/Http\/Middleware\/RedirectIfAuthenticated.php":"ddbd033d07f29b97941e2e021a78eab4","app\/Http\/Middleware\/OwnsRequestedWorkspace.php":"99b3eb77cb33c12f4630f0ff0bf0a84e","app\/Http\/Middleware\/OwnsCurrentWorkspace.php":"ddd644de44de55bed0d14a058534da5f","app\/Http\/Middleware\/CheckForMaintenanceMode.php":"13fecdea17d95ffe8f70fe3c56e0f497","app\/Http\/Middleware\/TrustHosts.php":"181bdfdfebffb2e8019806a7b3c061bd","app\/Http\/Middleware\/TrimStrings.php":"6147464a2cd11a9b32189c718f3e1fa5","app\/Http\/Controllers\/Auth\/ApiTokenController.php":"422df9c575b44baa0dd4554037164745","app\/Http\/Controllers\/Auth\/RegisterController.php":"64b03c166cb7e856f631bae916199add","app\/Http\/Controllers\/Auth\/VerificationController.php":"1b6f2e916bde69d3275883aae411f78d","app\/Http\/Controllers\/Auth\/ForgotPasswordController.php":"b06419407998c87cf5d89c8936f87810","app\/Http\/Controllers\/Auth\/ChangePasswordController.php":"057201b4f14d70c5d8450966943f7a9b","app\/Http\/Controllers\/Auth\/ConfirmPasswordController.php":"3ce0c3b0a4be919bdb39e7bd7e42a894","app\/Http\/Controllers\/Auth\/LoginController.php":"51e0c4938d8568990326a16f47993774","app\/Http\/Controllers\/Auth\/ResetPasswordController.php":"17de80faf8d3652db1277c64cd7cab1d","app\/Http\/Controllers\/Auth\/ProfileController.php":"462ff2a3b6ada8b9cb72b9000209e321","app\/Http\/Controllers\/SetupController.php":"40bc4b1d3b35aff81cec5c8d78c4754e","app\/Http\/Controllers\/Controller.php":"d2ab2e1e385a80aec6042dc23e7f86eb","app\/Http\/Controllers\/Workspaces\/WorkspaceUsersController.php":"dd2091a562bfc77ce849fff6720ebd86","app\/Http\/Controllers\/Workspaces\/WorkspaceInvitationsController.php":"62695e110bd391adeabdf9370d7e6336","app\/Http\/Controllers\/Workspaces\/SwitchWorkspaceController.php":"1ec0a5dc7c84a8409f4526a47a634497","app\/Http\/Controllers\/Workspaces\/PendingInvitationController.php":"0114fff979705de8bee82e163235482e","app\/Http\/Controllers\/Workspaces\/WorkspacesController.php":"a685eff29367597c4e6f6e706b005add","app\/Http\/Kernel.php":"1dfadea0c178c607de61469a99f0f89f","app\/Http\/Resources\/Workspace.php":"d067a6f07bd550d4153c310c28715681","app\/Http\/Requests\/ApiTokens\/ApiTokenStoreRequest.php":"56c01901a407bb57f20dd618b4fdf89e","app\/Http\/Requests\/Workspaces\/CreateWorkspaceRequest.php":"c07da30174e0dd1a6815cffb3ca2c831","app\/Http\/Requests\/Workspaces\/WorkspaceUpdateRequest.php":"a1308a6bc8750c36ce811f1e8265b365","app\/Http\/Requests\/Workspaces\/WorkspaceInvitationStoreRequest.php":"71ada4990b3bd30b067d90e0ac67bad0","app\/Http\/Requests\/Workspaces\/WorkspaceStoreRequest.php":"1b397a607f55c196444bb5873f0c4224","app\/Http\/Requests\/ChangePasswordRequest.php":"425a965157b3e251d5fa51fb925f2697","app\/Http\/Requests\/ProfileUpdateRequest.php":"a910df5bf61b4ca7bbccb3f3bca9c082","app\/Exceptions\/Handler.php":"665c24eba27dfb276eac81356caedb56","app\/Console\/Commands\/InstallApplication.php":"c31897e6a3c43e30a5836f31b724f5cc","app\/Console\/Commands\/UpgradeApplication.php":"979a37cd757e85d83bb11eba093d0c1a","app\/Console\/Kernel.php":"df2152f06cd07c8e95e36e6afab01c76","app\/Traits\/ChecksInvitations.php":"66c0b922807da00a39471ab9281ce800","app\/Traits\/HasWorkspaces.php":"3b1f1c3bfb64c0485cdbe9c7e22bde30","app\/Traits\/HasSendportalCommandUtilities.php":"4d212d734d0fec6ad91ec58ce300cdc1","app\/Traits\/HasSendportalMigrationHandlers.php":"f218eb3ba6c852dafb022a0ebe0147ad","app\/Rules\/ValidInvitation.php":"e289a4ac9b5452ce039f9717fbbd57d4","app\/Repositories\/ApiTokenRepository.php":"2e749016d2e80736d99282762bc27e30","app\/Repositories\/WorkspacesRepository.php":"045fd3222c05c6ee10db83e5890c277d","app\/Services\/Workspaces\/AcceptInvitation.php":"b22d7bf8cb78c6b962728d43efcae37e","app\/Services\/Workspaces\/RemoveUserFromWorkspace.php":"e0b7cf22bd2106992f231e3541538a41","app\/Services\/Workspaces\/SendInvitation.php":"41e73e828863468e8433dd8631e2edbb","app\/Services\/Workspaces\/CreateWorkspace.php":"056f398e6a43ed813289dc41c01c5cdd","app\/Services\/Workspaces\/AddWorkspaceMember.php":"910c9a8d07a0579f7012f4c2183f9a9f","server.php":"323b10ec66fb238f6e9897ab36c825b3","config\/sendportal-host.php":"39ddd885f8fd2f326ad15646cf9a69f5","config\/filesystems.php":"137ee6ce65c76f00f676a9d2a3786a36","config\/queue.php":"db0dbed09037496aeb217ae090bbae29","config\/auth.php":"c6d98a3371702805b1143939f0180717","config\/mail.php":"1ef213740cec34cd746079abc9ba275a","config\/view.php":"24e00ccca17634d028fbbfdafd9e7461","config\/horizon.php":"09cf662fcfc7ea53b81b1e0d41deed68","config\/app.php":"a4fe6d4478eb85079fd59964ec1a8869","config\/cache.php":"c266e9b2172f63354184e1be8bf9763e","config\/broadcasting.php":"bf5b67dc7929b3c338925e1ff5b2c43c","config\/hashing.php":"993f7bd4607853d3905cbdb68e27331d","config\/services.php":"601a15384d0786875b6e009f1aff45e4","config\/database.php":"8b1b900d640813d259a43082fa433c10","config\/session.php":"a0eb60b59d22b34e253bd25ea0869932","config\/logging.php":"2d16257864aa0d12378e82882cfd17c3","config\/sendportal.php":"41cd7d8566ea01a15b9f4a25f5083b3f","config\/cors.php":"c50ff880307bd72e3271f2ec32b78f5e","tests\/TestSupportTrait.php":"c0c6eb36887e08a46d48abc2632e7f50","tests\/Unit\/ExampleTest.php":"27eacc0fde35be1db9c989b11cbbf18f","tests\/TestCase.php":"8dbce99cc4820fc4b8ece1da1b8c26af","tests\/CreatesApplication.php":"cb2f21cebfcc89f2c0d910dcc8c98815","tests\/Feature\/Auth\/AuthConfigEnabledTest.php":"20f56f205e27b839203871a5d42e3dc2","tests\/Feature\/Auth\/WorkspaceApiTokenTest.php":"f88035c2ef21a5ab506432afb5d14a97","tests\/Feature\/Auth\/AuthConfigDisabledTest.php":"70b9f8eca37e988e3b42c56cb0c729a4","tests\/Feature\/Invitations\/NewUserInvitationTest.php":"2649b09b33846006b29a4e13e1532709","tests\/Feature\/Invitations\/ExistingUserInvitationTest.php":"b61fc16b31b9586a0d65a706e32cbd4d","tests\/Feature\/Setup\/SetupControllerTest.php":"6950e9d0dd7037abfc34cba83c7c359a","tests\/Feature\/Setup\/SetupTest.php":"a2a32f9274435305ec4afd1047813184","tests\/Feature\/Workspaces\/WorkspaceRequiredTest.php":"f243fdd3c8ec97dd5f2ac2600584cbde","tests\/Feature\/Workspaces\/WorkspacesControllerTest.php":"a97f8b2ee3d3351ce540197a2b7c5661","tests\/Feature\/Workspaces\/SwitchWorkspaceTest.php":"25b9cf82c1a43acd842852180e5e5441","tests\/Feature\/Workspaces\/WorkspaceInvitationsControllerTest.php":"e7d37474ad42c9400b814761910d0773","tests\/Feature\/Workspaces\/WorkspaceUserControllerTest.php":"43e77695602d717c46b0cd1431764127","app\/Http\/Middleware\/PreventRequestForgery.php":"e84d63de05267804d02c78acfd2dd5db","tests\/Feature\/Setup\/MigrationHandlersTest.php":"b668304dbf2bb46068877687ec584296"}} \ No newline at end of file