Skip to content

Commit 3821e74

Browse files
authored
[Feature] Added Laravel Telescope for local development (alexjustesen#830)
1 parent f839c71 commit 3821e74

File tree

11 files changed

+385
-2
lines changed

11 files changed

+385
-2
lines changed

.phpstorm.meta.php

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,9 @@
155155
'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class,
156156
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
157157
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
158+
'Laravel\Telescope\Contracts\ClearableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
159+
'Laravel\Telescope\Contracts\EntriesRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
160+
'Laravel\Telescope\Contracts\PrunableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
158161
'Livewire\EventBus' => \Livewire\EventBus::class,
159162
'Livewire\LivewireManager' => \Livewire\LivewireManager::class,
160163
'Livewire\Mechanisms\ComponentRegistry' => \Livewire\Mechanisms\ComponentRegistry::class,
@@ -390,6 +393,9 @@
390393
'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class,
391394
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
392395
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
396+
'Laravel\Telescope\Contracts\ClearableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
397+
'Laravel\Telescope\Contracts\EntriesRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
398+
'Laravel\Telescope\Contracts\PrunableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
393399
'Livewire\EventBus' => \Livewire\EventBus::class,
394400
'Livewire\LivewireManager' => \Livewire\LivewireManager::class,
395401
'Livewire\Mechanisms\ComponentRegistry' => \Livewire\Mechanisms\ComponentRegistry::class,
@@ -625,6 +631,9 @@
625631
'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class,
626632
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
627633
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
634+
'Laravel\Telescope\Contracts\ClearableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
635+
'Laravel\Telescope\Contracts\EntriesRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
636+
'Laravel\Telescope\Contracts\PrunableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
628637
'Livewire\EventBus' => \Livewire\EventBus::class,
629638
'Livewire\LivewireManager' => \Livewire\LivewireManager::class,
630639
'Livewire\Mechanisms\ComponentRegistry' => \Livewire\Mechanisms\ComponentRegistry::class,
@@ -860,6 +869,9 @@
860869
'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class,
861870
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
862871
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
872+
'Laravel\Telescope\Contracts\ClearableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
873+
'Laravel\Telescope\Contracts\EntriesRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
874+
'Laravel\Telescope\Contracts\PrunableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
863875
'Livewire\EventBus' => \Livewire\EventBus::class,
864876
'Livewire\LivewireManager' => \Livewire\LivewireManager::class,
865877
'Livewire\Mechanisms\ComponentRegistry' => \Livewire\Mechanisms\ComponentRegistry::class,
@@ -1095,6 +1107,9 @@
10951107
'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class,
10961108
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
10971109
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
1110+
'Laravel\Telescope\Contracts\ClearableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
1111+
'Laravel\Telescope\Contracts\EntriesRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
1112+
'Laravel\Telescope\Contracts\PrunableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
10981113
'Livewire\EventBus' => \Livewire\EventBus::class,
10991114
'Livewire\LivewireManager' => \Livewire\LivewireManager::class,
11001115
'Livewire\Mechanisms\ComponentRegistry' => \Livewire\Mechanisms\ComponentRegistry::class,
@@ -1330,6 +1345,9 @@
13301345
'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class,
13311346
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
13321347
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
1348+
'Laravel\Telescope\Contracts\ClearableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
1349+
'Laravel\Telescope\Contracts\EntriesRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
1350+
'Laravel\Telescope\Contracts\PrunableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
13331351
'Livewire\EventBus' => \Livewire\EventBus::class,
13341352
'Livewire\LivewireManager' => \Livewire\LivewireManager::class,
13351353
'Livewire\Mechanisms\ComponentRegistry' => \Livewire\Mechanisms\ComponentRegistry::class,
@@ -1565,6 +1583,9 @@
15651583
'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class,
15661584
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
15671585
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
1586+
'Laravel\Telescope\Contracts\ClearableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
1587+
'Laravel\Telescope\Contracts\EntriesRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
1588+
'Laravel\Telescope\Contracts\PrunableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
15681589
'Livewire\EventBus' => \Livewire\EventBus::class,
15691590
'Livewire\LivewireManager' => \Livewire\LivewireManager::class,
15701591
'Livewire\Mechanisms\ComponentRegistry' => \Livewire\Mechanisms\ComponentRegistry::class,
@@ -1800,6 +1821,9 @@
18001821
'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class,
18011822
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
18021823
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
1824+
'Laravel\Telescope\Contracts\ClearableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
1825+
'Laravel\Telescope\Contracts\EntriesRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
1826+
'Laravel\Telescope\Contracts\PrunableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
18031827
'Livewire\EventBus' => \Livewire\EventBus::class,
18041828
'Livewire\LivewireManager' => \Livewire\LivewireManager::class,
18051829
'Livewire\Mechanisms\ComponentRegistry' => \Livewire\Mechanisms\ComponentRegistry::class,
@@ -2035,6 +2059,9 @@
20352059
'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class,
20362060
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
20372061
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
2062+
'Laravel\Telescope\Contracts\ClearableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
2063+
'Laravel\Telescope\Contracts\EntriesRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
2064+
'Laravel\Telescope\Contracts\PrunableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
20382065
'Livewire\EventBus' => \Livewire\EventBus::class,
20392066
'Livewire\LivewireManager' => \Livewire\LivewireManager::class,
20402067
'Livewire\Mechanisms\ComponentRegistry' => \Livewire\Mechanisms\ComponentRegistry::class,
@@ -2270,6 +2297,9 @@
22702297
'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class,
22712298
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
22722299
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
2300+
'Laravel\Telescope\Contracts\ClearableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
2301+
'Laravel\Telescope\Contracts\EntriesRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
2302+
'Laravel\Telescope\Contracts\PrunableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
22732303
'Livewire\EventBus' => \Livewire\EventBus::class,
22742304
'Livewire\LivewireManager' => \Livewire\LivewireManager::class,
22752305
'Livewire\Mechanisms\ComponentRegistry' => \Livewire\Mechanisms\ComponentRegistry::class,
@@ -2505,6 +2535,9 @@
25052535
'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class,
25062536
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
25072537
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
2538+
'Laravel\Telescope\Contracts\ClearableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
2539+
'Laravel\Telescope\Contracts\EntriesRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
2540+
'Laravel\Telescope\Contracts\PrunableRepository' => \Laravel\Telescope\Storage\DatabaseEntriesRepository::class,
25082541
'Livewire\EventBus' => \Livewire\EventBus::class,
25092542
'Livewire\LivewireManager' => \Livewire\LivewireManager::class,
25102543
'Livewire\Mechanisms\ComponentRegistry' => \Livewire\Mechanisms\ComponentRegistry::class,

app/Providers/AppServiceProvider.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ public function register(): void
1414
{
1515
if ($this->app->isLocal()) {
1616
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
17+
18+
$this->app->register(\Laravel\Telescope\TelescopeServiceProvider::class);
19+
$this->app->register(TelescopeServiceProvider::class);
1720
}
1821
}
1922

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<?php
2+
3+
namespace App\Providers;
4+
5+
use Illuminate\Support\Facades\Gate;
6+
use Laravel\Telescope\IncomingEntry;
7+
use Laravel\Telescope\Telescope;
8+
use Laravel\Telescope\TelescopeApplicationServiceProvider;
9+
10+
class TelescopeServiceProvider extends TelescopeApplicationServiceProvider
11+
{
12+
/**
13+
* Register any application services.
14+
*/
15+
public function register(): void
16+
{
17+
// Telescope::night();
18+
19+
$this->hideSensitiveRequestDetails();
20+
21+
Telescope::filter(function (IncomingEntry $entry) {
22+
if ($this->app->environment('local')) {
23+
return true;
24+
}
25+
26+
return $entry->isReportableException() ||
27+
$entry->isFailedRequest() ||
28+
$entry->isFailedJob() ||
29+
$entry->isScheduledTask() ||
30+
$entry->hasMonitoredTag();
31+
});
32+
}
33+
34+
/**
35+
* Prevent sensitive request details from being logged by Telescope.
36+
*/
37+
protected function hideSensitiveRequestDetails(): void
38+
{
39+
if ($this->app->environment('local')) {
40+
return;
41+
}
42+
43+
Telescope::hideRequestParameters(['_token']);
44+
45+
Telescope::hideRequestHeaders([
46+
'cookie',
47+
'x-csrf-token',
48+
'x-xsrf-token',
49+
]);
50+
}
51+
52+
/**
53+
* Register the Telescope gate.
54+
*
55+
* This gate determines who can access Telescope in non-local environments.
56+
*/
57+
protected function gate(): void
58+
{
59+
Gate::define('viewTelescope', function ($user) {
60+
return in_array($user->email, [
61+
//
62+
]);
63+
});
64+
}
65+
}

composer.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"fakerphp/faker": "^1.23.0",
3434
"laravel/pint": "^1.13.2",
3535
"laravel/sail": "^1.25.0",
36+
"laravel/telescope": "^4.16",
3637
"mockery/mockery": "^1.6.6",
3738
"nunomaduro/collision": "^7.9.0",
3839
"phpunit/phpunit": "^10.3.5",
@@ -75,7 +76,8 @@
7576
"extra": {
7677
"laravel": {
7778
"dont-discover": [
78-
"barryvdh/laravel-ide-helper"
79+
"barryvdh/laravel-ide-helper",
80+
"laravel/telescope"
7981
]
8082
}
8183
},

composer.lock

Lines changed: 72 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)