Skip to content
This repository has been archived by the owner on Jul 17, 2024. It is now read-only.

Latest commit breaks built-in service account #57

Closed
cjcox17 opened this issue Apr 16, 2019 · 5 comments · Fixed by #59
Closed

Latest commit breaks built-in service account #57

cjcox17 opened this issue Apr 16, 2019 · 5 comments · Fixed by #59
Assignees

Comments

@cjcox17
Copy link

cjcox17 commented Apr 16, 2019

Everything was working properly before for over a year, however it seems the latest commit breaks when not using a json key file because Laravel by default throws a warning when merging null with an array

This code:

return new StorageClient([ 'projectId' => $config['project_id'], 'keyFile' => array_merge([ "project_id" => $config['project_id'] ], array_get($config, 'key_file', [])) ]);

throws an error. In all cases where a key_file doesn't exist, it is set to null. This throws a

`ErrorException thrown with message "array_merge(): Argument #2 is not an array"

Stacktrace:
#59 ErrorException in /var/www/html/test-project/vendor/superbalist/laravel-google-cloud-storage/src/GoogleCloudStorageServiceProvider.php:98
#58 array_merge in /var/www/html/test-project/vendor/superbalist/laravel-google-cloud-storage/src/GoogleCloudStorageServiceProvider.php:98
#57 Superbalist\LaravelGoogleCloudStorage\GoogleCloudStorageServiceProvider:createClient in /var/www/html/test-project/vendor/superbalist/laravel-google-cloud-storage/src/GoogleCloudStorageServiceProvider.php:67
#56 Superbalist\LaravelGoogleCloudStorage\GoogleCloudStorageServiceProvider:Superbalist\LaravelGoogleCloudStorage{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php:139
#55 Illuminate\Filesystem\FilesystemManager:callCustomCreator in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php:119
#54 Illuminate\Filesystem\FilesystemManager:resolve in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php:103
#53 Illuminate\Filesystem\FilesystemManager:get in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php:80
#52 Illuminate\Filesystem\FilesystemManager:disk in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:237
#51 Illuminate\Support\Facades\Facade:__callStatic in /var/www/html/test-project/app/Http/Controllers/RecordingController.php:24
#50 App\Http\Controllers\RecordingController:getRecording in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
#49 call_user_func_array in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
#48 Illuminate\Routing\Controller:callAction in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:45
#47 Illuminate\Routing\ControllerDispatcher:dispatch in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Route.php:219
#46 Illuminate\Routing\Route:runController in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Route.php:176
#45 Illuminate\Routing\Route:run in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Router.php:680
#44 Illuminate\Routing\Router:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#43 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
#42 Illuminate\Routing\Middleware\SubstituteBindings:handle in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#41 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#40 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:75
#39 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken:handle in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#38 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#37 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49
#36 Illuminate\View\Middleware\ShareErrorsFromSession:handle in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#35 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#34 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:56
#33 Illuminate\Session\Middleware\StartSession:handle in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#32 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#31 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37
#30 Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse:handle in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#29 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#28 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:66
#27 Illuminate\Cookie\Middleware\EncryptCookies:handle in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#26 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#25 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104
#24 Illuminate\Pipeline\Pipeline:then in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Router.php:682
#23 Illuminate\Routing\Router:runRouteWithinStack in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Router.php:657
#22 Illuminate\Routing\Router:runRoute in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Router.php:623
#21 Illuminate\Routing\Router:dispatchToRoute in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Router.php:612
#20 Illuminate\Routing\Router:dispatch in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176
#19 Illuminate\Foundation\Http\Kernel:Illuminate\Foundation\Http{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#18 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/fideloper/proxy/src/TrustProxies.php:57
#17 Fideloper\Proxy\TrustProxies:handle in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#16 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#15 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21
#14 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#13 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#12 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21
#11 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#10 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#9 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27
#8 Illuminate\Foundation\Http\Middleware\ValidatePostSize:handle in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#7 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#6 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:62
#5 Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode:handle in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#4 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#3 Illuminate\Routing\Pipeline:Illuminate\Routing{closure} in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104
#2 Illuminate\Pipeline\Pipeline:then in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:151
#1 Illuminate\Foundation\Http\Kernel:sendRequestThroughRouter in /var/www/html/test-project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116
#0 Illuminate\Foundation\Http\Kernel:handle in /var/www/html/test-project/public/index.php:55`

@nicja nicja self-assigned this Apr 16, 2019
@nicja
Copy link
Contributor

nicja commented Apr 16, 2019

Hi there, can you tell me what your $config looks like? array_get($config, 'key_file', []) should coalesce to [] if $config['key_file'] is not set, I'm confused as to why this isn't happening?

@GLStephen
Copy link

I can confirm this is well. The previous config/code combination allowed us to NOT SET the key_file value in the .env on the GCE machine, but to set a value to a file in dev. The disks config was this:

'key_file' => env('CREDENTIALS_FILE_LOCATION', null)

@michaelaguiar
Copy link

Also confirmed, having the same issue.

@nicja
Copy link
Contributor

nicja commented Apr 18, 2019

Please have a look at PR #59, this should resolve the issue

@nicja nicja closed this as completed in #59 Apr 18, 2019
nicja added a commit that referenced this issue Apr 18, 2019
* Fix issue #57: array merge with null

* Space after !
@nicja
Copy link
Contributor

nicja commented Apr 18, 2019

This should be fixed in version 2.2.1

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants