diff --git a/.env.example b/.env.example
index edcb450..92955d6 100644
--- a/.env.example
+++ b/.env.example
@@ -1,57 +1,23 @@
APP_NAME="Clearing Houz"
-APP_ENV=production
APP_KEY=
-APP_DEBUG=false
-APP_URL=http://clrghouz
APP_TIMEZONE=
+APP_URL=
-LOG_CHANNEL=stack
-LOG_LEVEL=info
+AUTH_PASSWORD_RESET_TOKEN_TABLE=password_resets
+
+CACHE_STORE=memcached
+MEMCACHED_HOST=memcached
DB_CONNECTION=pgsql
DB_HOST=postgres
-DB_PORT=5432
DB_DATABASE=clrghouz
DB_USERNAME=clrghouz
DB_PASSWORD=
-#DB_SSLMODE=prefer
-#DB_SSLROOTCERT=/var/www/html/config/ssl/ca.crt
-#DB_SSLCERT=/var/www/html/config/ssl/client.crt
-#DB_SSLKEY=/var/www/html/config/ssl/client.key
-BROADCAST_DRIVER=log
-MEMCACHED_HOST=memcached
-CACHE_DRIVER=memcached
QUEUE_CONNECTION=database
SESSION_DRIVER=file
SESSION_LIFETIME=120
-REDIS_HOST=127.0.0.1
-REDIS_PASSWORD=
-REDIS_PORT=6379
-
-MAIL_DRIVER=smtp
-MAIL_HOST=smtp
-MAIL_PORT=25
-MAIL_USERNAME=
-MAIL_PASSWORD=
-MAIL_ENCRYPTION=
-MAIL_AUTO_EMBED_METHOD=base64
-
-PUSHER_APP_ID=
-PUSHER_APP_KEY=
-PUSHER_APP_SECRET=
-PUSHER_APP_CLUSTER=mt1
-
-MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
-MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
-
-FIDO_DIR=fido
-FIDO_PACKET_KEEP=false
-FIDO_STRICT=false
-FIDO_HAPROXY=false
-
-FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_BUCKET=
@@ -59,12 +25,23 @@ AWS_ENDPOINT=
AWS_DEFAULT_REGION=home
AWS_USE_PATH_STYLE_ENDPOINT=true
-#MATRIX_SERVER=
-#MATRIX_AS_TOKEN=
-#MATRIX_HS_TOKEN=
+LOG_CHANNEL=daily
+LOG_LEVEL=info
+LOG_DAILY_DAYS=93
-#FIDO_DNS_NS=
-#FIDO_DNS_AAAA=
-#FIDO_DNS_ORDER_AAAA=
-#FIDO_DNS_A=
-#FIDO_DNS_ORDER_A=
+MAIL_MAILER=smtp
+MAIL_HOST=smtp
+MAIL_PORT=25
+MAIL_USERNAME=
+MAIL_PASSWORD=
+MAIL_ENCRYPTION=
+MAIL_AUTO_EMBED_METHOD=base64
+
+SESSION_DRIVER=file
+
+# Clrghouz configuration
+FIDO_DNS_NS=
+
+MATRIX_SERVER=
+MATRIX_AS_TOKEN=
+MATRIX_HS_TOKEN=
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
deleted file mode 100644
index 6860447..0000000
--- a/app/Console/Kernel.php
+++ /dev/null
@@ -1,46 +0,0 @@
-job(new MailSend(TRUE))->everyMinute()->withoutOverlapping();
- $schedule->job(new MailSend(FALSE))->twiceDaily(1,13);
- $schedule->job(new SystemHeartbeat)->hourly();
- $schedule->job(new AddressIdleDomain)->weeklyOn(0,'01:00');
- }
-
- /**
- * Register the commands for the application.
- *
- * @return void
- */
- protected function commands()
- {
- $this->load(__DIR__.'/Commands');
-
- require base_path('routes/console.php');
- }
-}
\ No newline at end of file
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
deleted file mode 100644
index f9644ad..0000000
--- a/app/Exceptions/Handler.php
+++ /dev/null
@@ -1,40 +0,0 @@
-reportable(function (Throwable $e) {
- //
- });
- }
-}
diff --git a/app/Helpers/PageAssets.php b/app/Helpers/PageAssets.php
new file mode 100644
index 0000000..7befee0
--- /dev/null
+++ b/app/Helpers/PageAssets.php
@@ -0,0 +1,213 @@
+ [
+ 'base' => [
+ 'css' => [
+ '//cdn.datatables.net/2.1.2/css/dataTables.bootstrap4.css',
+ //'//cdn.datatables.net/2.1.2/css/dataTables.dataTables.min.css',
+ ],
+ 'js' => [
+ '//cdn.datatables.net/2.1.2/js/dataTables.min.js',
+ '//cdn.datatables.net/2.1.2/js/dataTables.bootstrap4.min.js',
+ ],
+ ],
+ 'buttons' => [
+ 'css' => [
+ '//cdn.datatables.net/buttons/3.1.0/css/buttons.bootstrap4.min.css',
+ //'//cdn.datatables.net/buttons/3.1.0/css/buttons.dataTables.min.css',
+ ],
+ 'js' => [
+ '//cdn.datatables.net/buttons/3.1.0/js/dataTables.buttons.min.js',
+ //'//cdn.datatables.net/buttons/3.1.0/js/buttons.dataTables.min.js',
+ '//cdn.datatables.net/buttons/3.1.0/js/buttons.bootstrap4.min.js',
+ '//cdnjs.cloudflare.com/ajax/libs/jszip/3.2.0/jszip.min.js',
+ ],
+ ],
+ 'conditionalpaging' => [
+ 'js' => [
+ '//cdn.datatables.net/plug-ins/2.0.5/features/conditionalPaging/dataTables.conditionalPaging.min.js',
+ ],
+ ],
+ 'fixedheader' => [
+ 'css' => [
+ '//cdn.datatables.net/fixedheader/4.0.1/css/fixedHeader.bootstrap4.min.css',
+ //'//cdn.datatables.net/fixedheader/4.0.1/css/fixedHeader.dataTables.min.css',
+ ],
+ 'js' => [
+ '//cdn.datatables.net/fixedheader/4.0.1/js/dataTables.fixedHeader.min.js',
+ //'//cdn.datatables.net/fixedheader/4.0.1/js/fixedHeader.dataTables.min.js',
+ '//cdn.datatables.net/fixedheader/4.0.1/js/fixedHeader.bootstrap4.min.js',
+ ]
+ ],
+ 'responsive' => [
+ 'css' => [
+ '//cdn.datatables.net/responsive/3.0.2/css/responsive.bootstrap4.min.css',
+ //'//cdn.datatables.net/responsive/3.0.2/css/responsive.dataTables.min.css',
+ ],
+ 'js' => [
+ '//cdn.datatables.net/responsive/3.0.2/js/dataTables.responsive.min.js',
+ //'//cdn.datatables.net/responsive/3.0.2/js/responsive.bootstrap.min.js',
+ '//cdn.datatables.net/responsive/3.0.2/js/responsive.bootstrap4.min.js',
+ ]
+ ],
+ 'rowgroup' => [
+ 'css' => [
+ '//cdn.datatables.net/rowgroup/1.5.0/css/rowGroup.bootstrap4.min.css',
+ //'//cdn.datatables.net/rowgroup/1.5.0/css/rowGroup.dataTables.min.css',
+ ],
+ 'js' => [
+ '//cdn.datatables.net/rowgroup/1.5.0/js/dataTables.rowGroup.min.js',
+ //'//cdn.datatables.net/rowgroup/1.5.0/js/rowGroup.dataTables.min.js',
+ '//cdn.datatables.net/rowgroup/1.5.0/js/rowGroup.bootstrap4.min.js',
+ ],
+ ],
+ 'searchpanes' => [
+ 'css' => [
+ '//cdn.datatables.net/searchpanes/2.3.1/css/searchPanes.bootstrap4.min.css',
+ //'//cdn.datatables.net/searchpanes/2.3.1/css/searchPanes.dataTables.min.css',
+ ],
+ 'js' => [
+ '//cdn.datatables.net/searchpanes/2.3.1/js/dataTables.searchPanes.min.js',
+ //'//cdn.datatables.net/searchpanes/2.3.1/js/searchPanes.dataTables.min.js',
+ '//cdn.datatables.net/searchpanes/2.3.1/js/searchPanes.bootstrap4.min.js',
+ ],
+ ],
+ 'searchpanes-left' => [
+ 'css' => [
+ '/plugin/dataTables/leftSearchPanes.css',
+ ],
+ ],
+ 'select' => [
+ 'css' => [
+ '//cdn.datatables.net/select/2.0.3/css/select.bootstrap4.min.css',
+ //'//cdn.datatables.net/select/2.0.3/css/select.dataTables.min.css',
+ ],
+ 'js' => [
+ '//cdn.datatables.net/select/2.0.3/js/dataTables.select.min.js',
+ //'//cdn.datatables.net/select/2.0.3/js/select.dataTables.min.js',
+ '//cdn.datatables.net/select/2.0.3/js/select.bootstrap4.min.js',
+ ]
+ ],
+ ],
+ 'select2' => [
+ 'base' => [
+ 'css' => [
+ '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css',
+ ],
+ 'js' => [
+ '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js',
+ ],
+ ],
+ 'autofocus' => [
+ 'js' => [
+ '/plugin/select2/fix-autofocus.js',
+ ],
+ ]
+ ],
+ 'simplemde' => [
+ 'base' => [
+ 'css' => [
+ '//cdn.jsdelivr.net/simplemde/latest/simplemde.min.css',
+ ],
+ 'js' => [
+ '//cdn.jsdelivr.net/simplemde/latest/simplemde.min.js',
+ ],
+ ],
+ ],
+ ];
+
+ // Items to manage
+ public static Collection $items;
+
+ // Add an item to the list
+ public static function add(string $type,Collection|array|string $asset): void
+ {
+ if (! in_array($type,self::types))
+ throw new \Exception('Invalid type: '.$type);
+
+ if (! isset(self::$items))
+ self::init();
+
+ if (is_string($asset))
+ self::$items
+ ->get($type)
+ ->push($asset)
+ ->unique();
+ else
+ self::$items->put($type,
+ self::$items
+ ->get($type)
+ ->merge($asset->values())
+ ->unique());
+ }
+
+ // Add a predefined asset
+ public static function asset(string $id): void
+ {
+ if (! isset(self::$items))
+ self::init();
+
+ if (str_contains($id,',')) {
+ [$item,$arguments] = explode(',',$id,2);
+ $arguments = collect(explode('|',$arguments));
+
+ } else {
+ $item = $id;
+ $arguments = collect();
+ }
+
+ $arguments = $arguments->prepend('base');
+ $asset = collect(Arr::get(self::assets,$item))->only($arguments);
+
+ foreach (self::types as $type)
+ if ($x=$asset->pluck($type)->filter()->flatten())
+ self::add($type,$x);
+ }
+
+ // Render the CSS items
+ public static function css(): string
+ {
+ return isset(self::$items)
+ ? self::$items
+ ->get('css')
+ ->map(fn($item)=>sprintf('',$item))
+ ->join('')
+ : '';
+ }
+
+ public static function init(): void
+ {
+ self::$items = collect([
+ 'js' => collect(),
+ 'css' => collect(),
+ ]);
+ }
+
+ // Render the JS items
+ public static function js(): string
+ {
+ return isset(self::$items)
+ ? self::$items
+ ->get('js')
+ ->map(fn($item)=>sprintf('',$item))
+ ->join('')
+ : '';
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
deleted file mode 100644
index ddbfad3..0000000
--- a/app/Http/Kernel.php
+++ /dev/null
@@ -1,83 +0,0 @@
- [
- \App\Http\Middleware\EncryptCookies::class,
- \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
- \Illuminate\Session\Middleware\StartSession::class,
- // \Illuminate\Session\Middleware\AuthenticateSession::class,
- \Illuminate\View\Middleware\ShareErrorsFromSession::class,
- \App\Http\Middleware\VerifyCsrfToken::class,
- \Illuminate\Routing\Middleware\SubstituteBindings::class,
- \App\Http\Middleware\AddUserToView::class,
- ],
-
- 'api' => [
- \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
- \Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
- \Illuminate\Routing\Middleware\SubstituteBindings::class,
- ],
- ];
-
- /**
- * The application's route middleware.
- *
- * These middleware may be assigned to groups or used individually.
- *
- * @var array
- */
- protected $routeMiddleware = [
- 'activeuser' => \App\Http\Middleware\ActiveUser::class,
- 'auth' => \App\Http\Middleware\Authenticate::class,
- 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
- 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
- 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
- 'can' => \Illuminate\Auth\Middleware\Authorize::class,
- 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
- 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
- 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
- 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
- ];
-
- /**
- * The priority-sorted list of middleware.
- *
- * This forces the listed middleware to always be in the given order.
- *
- * @var array
- */
- protected $middlewarePriority = [
- \Illuminate\Session\Middleware\StartSession::class,
- \Illuminate\View\Middleware\ShareErrorsFromSession::class,
- \App\Http\Middleware\Authenticate::class,
- \Illuminate\Session\Middleware\AuthenticateSession::class,
- \Illuminate\Routing\Middleware\SubstituteBindings::class,
- \Illuminate\Auth\Middleware\Authorize::class,
- ];
-}
diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php
deleted file mode 100644
index a4be5c5..0000000
--- a/app/Http/Middleware/Authenticate.php
+++ /dev/null
@@ -1,21 +0,0 @@
-expectsJson()) {
- return route('login');
- }
- }
-}
diff --git a/app/Http/Middleware/CheckForMaintenanceMode.php b/app/Http/Middleware/CheckForMaintenanceMode.php
deleted file mode 100644
index 35b9824..0000000
--- a/app/Http/Middleware/CheckForMaintenanceMode.php
+++ /dev/null
@@ -1,17 +0,0 @@
-check()) {
- return redirect(RouteServiceProvider::HOME);
- }
-
- return $next($request);
- }
-}
diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php
deleted file mode 100644
index 5a50e7b..0000000
--- a/app/Http/Middleware/TrimStrings.php
+++ /dev/null
@@ -1,18 +0,0 @@
-count()) ? json_encode($value) : NULL;
}
diff --git a/app/Casts/CompressedStringOrNull.php b/app/Models/Casts/CompressedStringOrNull.php
similarity index 97%
rename from app/Casts/CompressedStringOrNull.php
rename to app/Models/Casts/CompressedStringOrNull.php
index ea9f8fd..61c0f1f 100644
--- a/app/Casts/CompressedStringOrNull.php
+++ b/app/Models/Casts/CompressedStringOrNull.php
@@ -1,6 +1,6 @@
echoarea->sec_read) {
$exportto = $model
->echoarea
diff --git a/app/Models/File.php b/app/Models/File.php
index 77cbcf9..2f281e0 100644
--- a/app/Models/File.php
+++ b/app/Models/File.php
@@ -11,7 +11,7 @@ use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
-use App\Casts\{CollectionOrNull,CompressedStringOrNull};
+use App\Models\Casts\{CompressedStringOrNull,CollectionOrNull};
class File extends Model
{
diff --git a/app/Models/Netmail.php b/app/Models/Netmail.php
index b0d215f..0514dbc 100644
--- a/app/Models/Netmail.php
+++ b/app/Models/Netmail.php
@@ -10,9 +10,9 @@ use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
-use App\Casts\{CollectionOrNull,CompressedStringOrNull,UTF8StringOrNull};
use App\Interfaces\Packet;
-use App\Pivots\ViaPivot;
+use App\Models\Casts\{CompressedStringOrNull,CollectionOrNull,UTF8StringOrNull};
+use App\Models\Pivots\ViaPivot;
use App\Traits\{MessageAttributes,MsgID};
final class Netmail extends Model implements Packet
diff --git a/app/Models/Origin.php b/app/Models/Origin.php
index 2927b1d..54c4597 100644
--- a/app/Models/Origin.php
+++ b/app/Models/Origin.php
@@ -2,10 +2,9 @@
namespace App\Models;
-use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
-use App\Casts\UTF8StringOrNull;
+use App\Models\Casts\UTF8StringOrNull;
class Origin extends Model
{
diff --git a/app/Pivots/ViaPivot.php b/app/Models/Pivots/ViaPivot.php
similarity index 83%
rename from app/Pivots/ViaPivot.php
rename to app/Models/Pivots/ViaPivot.php
index 01f0082..3021544 100644
--- a/app/Pivots/ViaPivot.php
+++ b/app/Models/Pivots/ViaPivot.php
@@ -1,6 +1,6 @@
',$expression);
+ });
+
Auth::viaRequest('matrix-token',function (Request $request) {
return (config('matrix.hs_token') && ($request->bearerToken() === config('matrix.hs_token'))) ? TRUE : NULL;
});
+ // Mailer Admin
+ Gate::define('admin',fn(User $o)=>($o->admin === TRUE));
+
+ // ZC of a Zone
+ Gate::define('zc',fn(User $o)=>(($o->admin === TRUE) || $o->ZC()));
+
Event::listen(
Message::class,
MessageListener::class,
@@ -62,7 +76,7 @@ class AppServiceProvider extends ServiceProvider
// @todo This should be detected automatically?
Event::listen(
- \App\Events\Echomail::class,
+ EchomailEvent::class,
EchomailListener::class,
);
}
diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php
deleted file mode 100644
index a851ea5..0000000
--- a/app/Providers/AuthServiceProvider.php
+++ /dev/null
@@ -1,36 +0,0 @@
- 'App\Policies\ModelPolicy',
- ];
-
- /**
- * Register any authentication / authorization services.
- *
- * @return void
- */
- public function boot()
- {
- $this->registerPolicies();
-
- // Mailer Admin
- Gate::define('admin',fn(User $o)=>($o->admin === TRUE));
-
- // ZC of a Zone
- Gate::define('zc',fn(User $o)=>(($o->admin === TRUE) || $o->ZC()));
- }
-}
diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php
deleted file mode 100644
index 352cce4..0000000
--- a/app/Providers/BroadcastServiceProvider.php
+++ /dev/null
@@ -1,21 +0,0 @@
-configureRateLimiting();
-
- $this->routes(function () {
- Route::prefix('api')
- ->middleware('api')
- ->namespace($this->namespace)
- ->group(base_path('routes/api.php'));
-
- Route::middleware('web')
- ->namespace($this->namespace)
- ->group(base_path('routes/web.php'));
- });
- }
-
- /**
- * Configure the rate limiters for the application.
- *
- * @return void
- */
- protected function configureRateLimiting()
- {
- RateLimiter::for('api', function (Request $request) {
- return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
- });
- }
-}
diff --git a/app/Traits/SingleOrFail.php b/app/Traits/SingleOrFail.php
index a0da4b8..9335bc9 100644
--- a/app/Traits/SingleOrFail.php
+++ b/app/Traits/SingleOrFail.php
@@ -13,6 +13,7 @@ trait SingleOrFail
private static function bootSingleOrFail(): void
{
// When a query should return 1 object, or FAIL if it doesnt
+ // @deprecated use sole()
Builder::macro('singleOrFail',function () {
$result = $this->get();
diff --git a/bootstrap/app.php b/bootstrap/app.php
index c65a860..51687e4 100644
--- a/bootstrap/app.php
+++ b/bootstrap/app.php
@@ -1,55 +1,27 @@
withRouting(
+ web: __DIR__.'/../routes/web.php',
+ api: __DIR__.'/../routes/api.php',
+ commands: __DIR__.'/../routes/console.php',
+ health: '/up',
+ )
+ ->withMiddleware(function (Middleware $middleware) {
+ $middleware->appendToGroup('web', [
+ AddUserToView::class,
+ ]);
-$app->singleton(
- Illuminate\Contracts\Http\Kernel::class,
- App\Http\Kernel::class
-);
-
-$app->singleton(
- Illuminate\Contracts\Console\Kernel::class,
- App\Console\Kernel::class
-);
-
-$app->singleton(
- Illuminate\Contracts\Debug\ExceptionHandler::class,
- App\Exceptions\Handler::class
-);
-
-/*
-|--------------------------------------------------------------------------
-| Return The Application
-|--------------------------------------------------------------------------
-|
-| This script returns the application instance. The instance is given to
-| the calling script so we can separate the building of the instances
-| from the actual running of the application and sending responses.
-|
-*/
-
-return $app;
+ $middleware->alias([
+ 'activeuser' => ActiveUser::class,
+ ]);
+ })
+ ->withExceptions(function (Exceptions $exceptions) {
+ //
+ })->create();
\ No newline at end of file
diff --git a/bootstrap/providers.php b/bootstrap/providers.php
new file mode 100644
index 0000000..92cb281
--- /dev/null
+++ b/bootstrap/providers.php
@@ -0,0 +1,6 @@
+ env('APP_NAME', 'Laravel'),
+ 'name' => env('APP_NAME', 'Laravel'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Environment
+ |--------------------------------------------------------------------------
+ |
+ | This value determines the "environment" your application is currently
+ | running in. This may determine how you prefer to configure various
+ | services the application utilizes. Set this in your ".env" file.
+ |
+ */
+
+ 'env' => env('APP_ENV', 'production'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Debug Mode
+ |--------------------------------------------------------------------------
+ |
+ | When your application is in debug mode, detailed error messages with
+ | stack traces will be shown on every error that occurs within your
+ | application. If disabled, a simple generic error page is shown.
+ |
+ */
+
+ 'debug' => (bool) env('APP_DEBUG', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application URL
+ |--------------------------------------------------------------------------
+ |
+ | This URL is used by the console to properly generate URLs when using
+ | the Artisan command line tool. You should set this to the root of
+ | the application so that it's available within Artisan commands.
+ |
+ */
+
+ 'url' => env('APP_URL', 'http://localhost'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Timezone
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the default timezone for your application, which
+ | will be used by the PHP date and date-time functions. The timezone
+ | is set to "UTC" by default as it is suitable for most use cases.
+ |
+ */
+
+ 'timezone' => env('APP_TIMEZONE', 'UTC'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Locale Configuration
+ |--------------------------------------------------------------------------
+ |
+ | The application locale determines the default locale that will be used
+ | by Laravel's translation / localization methods. This option can be
+ | set to any locale for which you plan to have translation strings.
+ |
+ */
+
+ 'locale' => env('APP_LOCALE', 'en'),
+
+ 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),
+
+ 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Encryption Key
+ |--------------------------------------------------------------------------
+ |
+ | This key is utilized by Laravel's encryption services and should be set
+ | to a random, 32 character string to ensure that all encrypted values
+ | are secure. You should do this prior to deploying the application.
+ |
+ */
+
+ 'cipher' => 'AES-256-CBC',
+
+ 'key' => env('APP_KEY'),
+
+ 'previous_keys' => [
+ ...array_filter(
+ explode(',', env('APP_PREVIOUS_KEYS', ''))
+ ),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Maintenance Mode Driver
+ |--------------------------------------------------------------------------
+ |
+ | These configuration options determine the driver used to determine and
+ | manage Laravel's "maintenance mode" status. The "cache" driver will
+ | allow maintenance mode to be controlled across multiple machines.
+ |
+ | Supported drivers: "file", "cache"
+ |
+ */
+
+ 'maintenance' => [
+ 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'),
+ 'store' => env('APP_MAINTENANCE_STORE', 'database'),
+ ],
+
+ // @todo MOVE this to a clrghouz configuration file
'id' => env('APP_SETUP_ID', 1),
-
- /*
- |--------------------------------------------------------------------------
- | Application Environment
- |--------------------------------------------------------------------------
- |
- | This value determines the "environment" your application is currently
- | running in. This may determine how you prefer to configure various
- | services the application utilizes. Set this in your ".env" file.
- |
- */
-
- 'env' => env('APP_ENV', 'production'),
-
- /*
- |--------------------------------------------------------------------------
- | Application Debug Mode
- |--------------------------------------------------------------------------
- |
- | When your application is in debug mode, detailed error messages with
- | stack traces will be shown on every error that occurs within your
- | application. If disabled, a simple generic error page is shown.
- |
- */
-
- 'debug' => (bool) env('APP_DEBUG', false),
-
- // Where the maintenance mode file is stored when calling down
- 'maintenance' => [
- 'driver' => 'cache',
- //'store' => 'memcached',
- ],
-
- /*
- |--------------------------------------------------------------------------
- | Application URL
- |--------------------------------------------------------------------------
- |
- | This URL is used by the console to properly generate URLs when using
- | the Artisan command line tool. You should set this to the root of
- | your application so that it is used when running Artisan tasks.
- |
- */
-
- 'url' => env('APP_URL', 'http://localhost'),
-
- 'asset_url' => env('ASSET_URL', null),
-
- /*
- |--------------------------------------------------------------------------
- | Application Timezone
- |--------------------------------------------------------------------------
- |
- | Here you may specify the default timezone for your application, which
- | will be used by the PHP date and date-time functions. We have gone
- | ahead and set this to a sensible default for you out of the box.
- |
- */
-
- 'timezone' => env('APP_TIMEZONE', 'UTC'),
-
- /*
- |--------------------------------------------------------------------------
- | Application Locale Configuration
- |--------------------------------------------------------------------------
- |
- | The application locale determines the default locale that will be used
- | by the translation service provider. You are free to set this value
- | to any of the locales which will be supported by the application.
- |
- */
-
- 'locale' => 'en',
-
- /*
- |--------------------------------------------------------------------------
- | Application Fallback Locale
- |--------------------------------------------------------------------------
- |
- | The fallback locale determines the locale to use when the current one
- | is not available. You may change the value to correspond to any of
- | the language folders that are provided through your application.
- |
- */
-
- 'fallback_locale' => 'en',
-
- /*
- |--------------------------------------------------------------------------
- | Faker Locale
- |--------------------------------------------------------------------------
- |
- | This locale will be used by the Faker PHP library when generating fake
- | data for your database seeds. For example, this will be used to get
- | localized telephone numbers, street address information and more.
- |
- */
-
- 'faker_locale' => 'en_US',
-
- /*
- |--------------------------------------------------------------------------
- | Encryption Key
- |--------------------------------------------------------------------------
- |
- | This key is used by the Illuminate encrypter service and should be set
- | to a random, 32 character string, otherwise these encrypted strings
- | will not be safe. Please do this before deploying an application!
- |
- */
-
- 'key' => env('APP_KEY'),
-
- 'cipher' => 'AES-256-CBC',
-
- /*
- |--------------------------------------------------------------------------
- | Autoloaded Service Providers
- |--------------------------------------------------------------------------
- |
- | The service providers listed here will be automatically loaded on the
- | request to your application. Feel free to add your own services to
- | this array to grant expanded functionality to your applications.
- |
- */
-
- 'providers' => [
-
- /*
- * Laravel Framework Service Providers...
- */
- Illuminate\Auth\AuthServiceProvider::class,
- Illuminate\Broadcasting\BroadcastServiceProvider::class,
- Illuminate\Bus\BusServiceProvider::class,
- Illuminate\Cache\CacheServiceProvider::class,
- Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
- Illuminate\Cookie\CookieServiceProvider::class,
- Illuminate\Database\DatabaseServiceProvider::class,
- Illuminate\Encryption\EncryptionServiceProvider::class,
- Illuminate\Filesystem\FilesystemServiceProvider::class,
- Illuminate\Foundation\Providers\FoundationServiceProvider::class,
- Illuminate\Hashing\HashServiceProvider::class,
- Illuminate\Mail\MailServiceProvider::class,
- Illuminate\Notifications\NotificationServiceProvider::class,
- Illuminate\Pagination\PaginationServiceProvider::class,
- Illuminate\Pipeline\PipelineServiceProvider::class,
- Illuminate\Queue\QueueServiceProvider::class,
- Illuminate\Redis\RedisServiceProvider::class,
- Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
- Illuminate\Session\SessionServiceProvider::class,
- Illuminate\Translation\TranslationServiceProvider::class,
- Illuminate\Validation\ValidationServiceProvider::class,
- Illuminate\View\ViewServiceProvider::class,
-
- /*
- * Package Service Providers...
- */
-
- /*
- * Application Service Providers...
- */
- App\Providers\AppServiceProvider::class,
- App\Providers\AuthServiceProvider::class,
- // App\Providers\BroadcastServiceProvider::class,
- App\Providers\RouteServiceProvider::class,
- App\Providers\CustomBladeServiceProvider::class,
-
- /*
- * Other Service Providers...
- */
- ],
-
- /*
- |--------------------------------------------------------------------------
- | Class Aliases
- |--------------------------------------------------------------------------
- |
- | This array of class aliases will be registered when this application
- | is started. However, feel free to register as many as you wish as
- | the aliases are "lazy" loaded so they don't hinder performance.
- |
- */
-
- 'aliases' => [
-
- 'App' => Illuminate\Support\Facades\App::class,
- 'Arr' => Illuminate\Support\Arr::class,
- 'Artisan' => Illuminate\Support\Facades\Artisan::class,
- 'Asset' => Orchestra\Support\Facades\Asset::class,
- 'Auth' => Illuminate\Support\Facades\Auth::class,
- 'Blade' => Illuminate\Support\Facades\Blade::class,
- 'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
- 'Bus' => Illuminate\Support\Facades\Bus::class,
- 'Carbon' => \Carbon\Carbon::class,
- 'Cache' => Illuminate\Support\Facades\Cache::class,
- 'Config' => Illuminate\Support\Facades\Config::class,
- 'Cookie' => Illuminate\Support\Facades\Cookie::class,
- 'Crypt' => Illuminate\Support\Facades\Crypt::class,
- 'Date' => Illuminate\Support\Facades\Date::class,
- 'DB' => Illuminate\Support\Facades\DB::class,
- 'Eloquent' => Illuminate\Database\Eloquent\Model::class,
- 'Event' => Illuminate\Support\Facades\Event::class,
- 'File' => Illuminate\Support\Facades\File::class,
- 'Gate' => Illuminate\Support\Facades\Gate::class,
- 'Hash' => Illuminate\Support\Facades\Hash::class,
- 'Http' => Illuminate\Support\Facades\Http::class,
- 'Lang' => Illuminate\Support\Facades\Lang::class,
- 'Log' => Illuminate\Support\Facades\Log::class,
- 'Mail' => Illuminate\Support\Facades\Mail::class,
- 'Notification' => Illuminate\Support\Facades\Notification::class,
- 'Password' => Illuminate\Support\Facades\Password::class,
- 'Queue' => Illuminate\Support\Facades\Queue::class,
- 'Redirect' => Illuminate\Support\Facades\Redirect::class,
- 'Redis' => Illuminate\Support\Facades\Redis::class,
- 'Request' => Illuminate\Support\Facades\Request::class,
- 'Response' => Illuminate\Support\Facades\Response::class,
- 'Route' => Illuminate\Support\Facades\Route::class,
- 'Schema' => Illuminate\Support\Facades\Schema::class,
- 'Session' => Illuminate\Support\Facades\Session::class,
- 'Storage' => Illuminate\Support\Facades\Storage::class,
- 'Str' => Illuminate\Support\Str::class,
- 'URL' => Illuminate\Support\Facades\URL::class,
- 'Validator' => Illuminate\Support\Facades\Validator::class,
- 'View' => Illuminate\Support\Facades\View::class,
-
- ],
-
];
diff --git a/config/auth.php b/config/auth.php
index a12f814..0ba5d5d 100644
--- a/config/auth.php
+++ b/config/auth.php
@@ -2,140 +2,114 @@
return [
- /*
- |--------------------------------------------------------------------------
- | Authentication Defaults
- |--------------------------------------------------------------------------
- |
- | This option controls the default authentication "guard" and password
- | reset options for your application. You may change these defaults
- | as required, but they're a perfect start for most applications.
- |
- */
+ /*
+ |--------------------------------------------------------------------------
+ | Authentication Defaults
+ |--------------------------------------------------------------------------
+ |
+ | This option defines the default authentication "guard" and password
+ | reset "broker" for your application. You may change these values
+ | as required, but they're a perfect start for most applications.
+ |
+ */
- 'defaults' => [
- 'guard' => 'web',
- 'passwords' => 'users',
- ],
+ 'defaults' => [
+ 'guard' => env('AUTH_GUARD', 'web'),
+ 'passwords' => env('AUTH_PASSWORD_BROKER', 'users'),
+ ],
- /*
- |--------------------------------------------------------------------------
- | Authentication Guards
- |--------------------------------------------------------------------------
- |
- | Next, you may define every authentication guard for your application.
- | Of course, a great default configuration has been defined for you
- | here which uses session storage and the Eloquent user provider.
- |
- | All authentication drivers have a user provider. This defines how the
- | users are actually retrieved out of your database or other storage
- | mechanisms used by this application to persist your user's data.
- |
- | Supported: "session", "token"
- |
- */
+ /*
+ |--------------------------------------------------------------------------
+ | Authentication Guards
+ |--------------------------------------------------------------------------
+ |
+ | Next, you may define every authentication guard for your application.
+ | Of course, a great default configuration has been defined for you
+ | which utilizes session storage plus the Eloquent user provider.
+ |
+ | All authentication guards have a user provider, which defines how the
+ | users are actually retrieved out of your database or other storage
+ | system used by the application. Typically, Eloquent is utilized.
+ |
+ | Supported: "session"
+ |
+ */
- 'guards' => [
- 'web' => [
- 'driver' => 'session',
- 'provider' => 'users',
- ],
+ 'guards' => [
+ 'web' => [
+ 'driver' => 'session',
+ 'provider' => 'users',
+ ],
+ ],
- 'api' => [
- 'driver' => 'sanctum',
- 'provider' => 'users',
- 'hash' => false,
- ],
+ /*
+ |--------------------------------------------------------------------------
+ | User Providers
+ |--------------------------------------------------------------------------
+ |
+ | All authentication guards have a user provider, which defines how the
+ | users are actually retrieved out of your database or other storage
+ | system used by the application. Typically, Eloquent is utilized.
+ |
+ | If you have multiple user tables or models you may configure multiple
+ | providers to represent the model / table. These providers may then
+ | be assigned to any extra authentication guards you have defined.
+ |
+ | Supported: "database", "eloquent"
+ |
+ */
- 'token' => [
- 'driver' => 'token',
- 'provider' => 'users',
- 'hash' => false,
- ],
+ 'providers' => [
+ 'users' => [
+ 'driver' => 'eloquent',
+ 'model' => env('AUTH_MODEL', App\Models\User::class),
+ ],
- 'matrix' => [
- 'driver' => 'matrix-token',
- ]
- ],
+ // 'users' => [
+ // 'driver' => 'database',
+ // 'table' => 'users',
+ // ],
+ ],
- /*
- |--------------------------------------------------------------------------
- | User Providers
- |--------------------------------------------------------------------------
- |
- | All authentication drivers have a user provider. This defines how the
- | users are actually retrieved out of your database or other storage
- | mechanisms used by this application to persist your user's data.
- |
- | If you have multiple user tables or models you may configure multiple
- | sources which represent each model / table. These sources may then
- | be assigned to any extra authentication guards you have defined.
- |
- | Supported: "database", "eloquent"
- |
- */
+ /*
+ |--------------------------------------------------------------------------
+ | Resetting Passwords
+ |--------------------------------------------------------------------------
+ |
+ | These configuration options specify the behavior of Laravel's password
+ | reset functionality, including the table utilized for token storage
+ | and the user provider that is invoked to actually retrieve users.
+ |
+ | The expiry time is the number of minutes that each reset token will be
+ | considered valid. This security feature keeps tokens short-lived so
+ | they have less time to be guessed. You may change this as needed.
+ |
+ | The throttle setting is the number of seconds a user must wait before
+ | generating more password reset tokens. This prevents the user from
+ | quickly generating a very large amount of password reset tokens.
+ |
+ */
- 'providers' => [
- 'users' => [
- 'driver' => 'eloquent',
- 'model' => App\Models\User::class,
- ],
+ 'passwords' => [
+ 'users' => [
+ 'provider' => 'users',
+ 'table' => env('AUTH_PASSWORD_RESET_TOKEN_TABLE', 'password_reset_tokens'),
+ 'expire' => 60,
+ 'throttle' => 60,
+ ],
+ ],
- // 'users' => [
- // 'driver' => 'database',
- // 'table' => 'users',
- // ],
- ],
+ /*
+ |--------------------------------------------------------------------------
+ | Password Confirmation Timeout
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define the amount of seconds before a password confirmation
+ | window expires and users are asked to re-enter their password via the
+ | confirmation screen. By default, the timeout lasts for three hours.
+ |
+ */
- /*
- |--------------------------------------------------------------------------
- | Resetting Passwords
- |--------------------------------------------------------------------------
- |
- | You may specify multiple password reset configurations if you have more
- | than one user table or model in the application and you want to have
- | separate password reset settings based on the specific user types.
- |
- | The expire time is the number of minutes that the reset token should be
- | considered valid. This security feature keeps tokens short-lived so
- | they have less time to be guessed. You may change this as needed.
- |
- */
+ 'password_timeout' => env('AUTH_PASSWORD_TIMEOUT', 10800),
- 'passwords' => [
- 'users' => [
- 'provider' => 'users',
- 'table' => 'password_resets',
- 'expire' => 60,
- 'throttle' => 60,
- ],
- ],
-
- /*
- |--------------------------------------------------------------------------
- | Password Confirmation Timeout
- |--------------------------------------------------------------------------
- |
- | Here you may define the amount of seconds before a password confirmation
- | times out and the user is prompted to re-enter their password via the
- | confirmation screen. By default, the timeout lasts for three hours.
- |
- */
-
- 'password_timeout' => 10800,
-
- /*
- |--------------------------------------------------------------------------
- | Social Network Configuration
- |--------------------------------------------------------------------------
- */
-
- 'social' => [
- 'w3id' => [
- 'name' => 'W3id',
- 'id' => 'w3id',
- 'class' => 'btn-primary',
- 'icon' => 'fas fa-address-card',
- ],
- ],
-];
\ No newline at end of file
+];
diff --git a/config/broadcasting.php b/config/broadcasting.php
deleted file mode 100644
index 3ca45ea..0000000
--- a/config/broadcasting.php
+++ /dev/null
@@ -1,59 +0,0 @@
- env('BROADCAST_DRIVER', 'null'),
-
- /*
- |--------------------------------------------------------------------------
- | Broadcast Connections
- |--------------------------------------------------------------------------
- |
- | Here you may define all of the broadcast connections that will be used
- | to broadcast events to other systems or over websockets. Samples of
- | each available type of connection are provided inside this array.
- |
- */
-
- 'connections' => [
-
- 'pusher' => [
- 'driver' => 'pusher',
- 'key' => env('PUSHER_APP_KEY'),
- 'secret' => env('PUSHER_APP_SECRET'),
- 'app_id' => env('PUSHER_APP_ID'),
- 'options' => [
- 'cluster' => env('PUSHER_APP_CLUSTER'),
- 'encrypted' => true,
- ],
- ],
-
- 'redis' => [
- 'driver' => 'redis',
- 'connection' => 'default',
- ],
-
- 'log' => [
- 'driver' => 'log',
- ],
-
- 'null' => [
- 'driver' => 'null',
- ],
-
- ],
-
-];
diff --git a/config/cache.php b/config/cache.php
index 0c30969..925f7d2 100644
--- a/config/cache.php
+++ b/config/cache.php
@@ -9,15 +9,13 @@ return [
| Default Cache Store
|--------------------------------------------------------------------------
|
- | This option controls the default cache connection that gets used while
- | using this caching library. This connection is used when another is
- | not explicitly specified when executing a given caching function.
- |
- | Supported: "apc", "array", "database", "file", "memcached", "redis"
+ | This option controls the default cache store that will be used by the
+ | framework. This connection is utilized if another isn't explicitly
+ | specified when running a cache operation inside the application.
|
*/
- 'default' => env('CACHE_DRIVER', 'file'),
+ 'default' => env('CACHE_STORE', 'database'),
/*
|--------------------------------------------------------------------------
@@ -28,27 +26,30 @@ return [
| well as their drivers. You may even define multiple stores for the
| same cache driver to group types of items stored in your caches.
|
+ | Supported drivers: "array", "database", "file", "memcached",
+ | "redis", "dynamodb", "octane", "null"
+ |
*/
'stores' => [
- 'apc' => [
- 'driver' => 'apc',
- ],
-
'array' => [
'driver' => 'array',
+ 'serialize' => false,
],
'database' => [
'driver' => 'database',
- 'table' => 'cache',
- 'connection' => null,
+ 'connection' => env('DB_CACHE_CONNECTION'),
+ 'table' => env('DB_CACHE_TABLE', 'cache'),
+ 'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'),
+ 'lock_table' => env('DB_CACHE_LOCK_TABLE'),
],
'file' => [
'driver' => 'file',
'path' => storage_path('framework/cache/data'),
+ 'lock_path' => storage_path('framework/cache/data'),
],
'memcached' => [
@@ -59,7 +60,7 @@ return [
env('MEMCACHED_PASSWORD'),
],
'options' => [
- // Memcached::OPT_CONNECT_TIMEOUT => 2000,
+ // Memcached::OPT_CONNECT_TIMEOUT => 2000,
],
'servers' => [
[
@@ -72,7 +73,21 @@ return [
'redis' => [
'driver' => 'redis',
- 'connection' => 'cache',
+ 'connection' => env('REDIS_CACHE_CONNECTION', 'cache'),
+ 'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'),
+ ],
+
+ 'dynamodb' => [
+ 'driver' => 'dynamodb',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
+ 'endpoint' => env('DYNAMODB_ENDPOINT'),
+ ],
+
+ 'octane' => [
+ 'driver' => 'octane',
],
],
@@ -82,12 +97,12 @@ return [
| Cache Key Prefix
|--------------------------------------------------------------------------
|
- | When utilizing a RAM based store such as APC or Memcached, there might
- | be other applications utilizing the same cache. So, we'll specify a
- | value to get prefixed to all our keys so we can avoid collisions.
+ | When utilizing the APC, database, memcached, Redis, and DynamoDB cache
+ | stores, there might be other applications using the same cache. For
+ | that reason, you may prefix every cache key to avoid collisions.
|
*/
- 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),
+ 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'),
];
diff --git a/config/database.php b/config/database.php
index c7f6264..f8e8dcb 100644
--- a/config/database.php
+++ b/config/database.php
@@ -1,5 +1,7 @@
env('DB_CONNECTION', 'mysql'),
+ 'default' => env('DB_CONNECTION', 'sqlite'),
/*
|--------------------------------------------------------------------------
| Database Connections
|--------------------------------------------------------------------------
|
- | Here are each of the database connections setup for your application.
- | Of course, examples of configuring each database platform that is
- | supported by Laravel is shown below to make development simple.
- |
- |
- | All database work in Laravel is done through the PHP PDO facilities
- | so make sure you have the driver for your particular database of
- | choice installed on your machine before you begin development.
+ | Below are all of the database connections defined for your application.
+ | An example configuration is provided for each database system which
+ | is supported by Laravel. You're free to add / remove connections.
|
*/
@@ -35,6 +33,7 @@ return [
'sqlite' => [
'driver' => 'sqlite',
+ 'url' => env('DB_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
@@ -42,81 +41,72 @@ return [
'mysql' => [
'driver' => 'mysql',
+ 'url' => env('DB_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
- 'database' => env('DB_DATABASE', 'forge'),
- 'username' => env('DB_USERNAME', 'forge'),
+ 'database' => env('DB_DATABASE', 'laravel'),
+ 'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
- 'charset' => 'utf8mb4',
- 'collation' => 'utf8mb4_unicode_ci',
+ 'charset' => env('DB_CHARSET', 'utf8mb4'),
+ 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
+ 'options' => extension_loaded('pdo_mysql') ? array_filter([
+ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+ ]) : [],
+ ],
+
+ 'mariadb' => [
+ 'driver' => 'mariadb',
+ 'url' => env('DB_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '3306'),
+ 'database' => env('DB_DATABASE', 'laravel'),
+ 'username' => env('DB_USERNAME', 'root'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'unix_socket' => env('DB_SOCKET', ''),
+ 'charset' => env('DB_CHARSET', 'utf8mb4'),
+ 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ 'strict' => true,
+ 'engine' => null,
+ 'options' => extension_loaded('pdo_mysql') ? array_filter([
+ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+ ]) : [],
],
'pgsql' => [
'driver' => 'pgsql',
+ 'url' => env('DB_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
- 'database' => env('DB_DATABASE', 'forge'),
- 'username' => env('DB_USERNAME', 'forge'),
+ 'database' => env('DB_DATABASE', 'laravel'),
+ 'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
- 'charset' => 'utf8',
+ 'charset' => env('DB_CHARSET', 'utf8'),
'prefix' => '',
'prefix_indexes' => true,
- 'schema' => 'public',
- 'sslmode' => 'disable', //depends on your security level https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-SSLMODE-STATEMENTS
- 'sslrootcert' => env('DB_SSLROOTCERT', 'config/ssl/ca.crt'),
- 'sslcert' => env('DB_SSLCERT', 'config/ssl/client.crt'),
- 'sslkey' => env('DB_SSLKEY', 'config/ssl/client.key'),
+ 'search_path' => 'public',
+ 'sslmode' => 'prefer',
],
'sqlsrv' => [
'driver' => 'sqlsrv',
+ 'url' => env('DB_URL'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
- 'database' => env('DB_DATABASE', 'forge'),
- 'username' => env('DB_USERNAME', 'forge'),
- 'password' => env('DB_PASSWORD', ''),
- 'charset' => 'utf8',
- 'prefix' => '',
- 'prefix_indexes' => true,
- ],
-
- 'cockroach' => [
- 'driver' => 'cockroach',
- 'host' => env('DB_HOST', 'HOSTNAME-OF-COCKROACH-SERVER'),
- 'port' => env('DB_PORT', '26257'),
- 'database' => env('DB_DATABASE', 'DATABASE-NAME'),
+ 'database' => env('DB_DATABASE', 'laravel'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
- 'charset' => 'utf8',
+ 'charset' => env('DB_CHARSET', 'utf8'),
'prefix' => '',
- 'schema' => 'public',
- 'sslmode' => env('DB_SSLMODE', 'prefer'),
-
- // Only set these keys if you want to run en secure mode
- // otherwise you can them out of the configuration array
- 'sslcert' => env('DB_SSLCERT', 'config/ssl/client.crt'),
- 'sslkey' => env('DB_SSLKEY', 'config/ssl/client.key'),
- 'sslrootcert' => env('DB_SSLROOTCERT', 'config/ssl/ca.crt'),
- ],
-
- 'mongodb' => [
- 'driver' => 'mongodb',
- 'host' => env('DB_MONGO_HOST', '127.0.0.1'),
- 'port' => env('DB_MONGO_PORT', 27017),
- 'database' => env('DB_MONGO_DATABASE', 'fido'),
- 'username' => env('DB_MONGO_USERNAME', 'mongo'),
- 'password' => env('DB_MONGO_PASSWORD', 'password'),
- 'options' => [
- // here you can pass more settings to the Mongo Driver Manager
- // see https://www.php.net/manual/en/mongodb-driver-manager.construct.php under "Uri Options" for a list of complete parameters that you can use
-
- 'database' => env('DB_AUTHENTICATION_DATABASE', 'admin'), // required with Mongo 3+
- ],
+ 'prefix_indexes' => true,
+ // 'encrypt' => env('DB_ENCRYPT', 'yes'),
+ // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'),
],
],
@@ -128,11 +118,14 @@ return [
|
| This table keeps track of all the migrations that have already run for
| your application. Using this information, we can determine which of
- | the migrations on disk haven't actually been run in the database.
+ | the migrations on disk haven't actually been run on the database.
|
*/
- 'migrations' => 'migrations',
+ 'migrations' => [
+ 'table' => 'migrations',
+ 'update_date_on_publish' => true,
+ ],
/*
|--------------------------------------------------------------------------
@@ -141,26 +134,35 @@ return [
|
| Redis is an open source, fast, and advanced key-value store that also
| provides a richer body of commands than a typical key-value system
- | such as APC or Memcached. Laravel makes it easy to dig right in.
+ | such as Memcached. You may define your connection settings here.
|
*/
'redis' => [
- 'client' => 'phpredis',
+ 'client' => env('REDIS_CLIENT', 'phpredis'),
+
+ 'options' => [
+ 'cluster' => env('REDIS_CLUSTER', 'redis'),
+ 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
+ ],
'default' => [
+ 'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
- 'password' => env('REDIS_PASSWORD', null),
- 'port' => env('REDIS_PORT', 6379),
- 'database' => env('REDIS_DB', 0),
+ 'username' => env('REDIS_USERNAME'),
+ 'password' => env('REDIS_PASSWORD'),
+ 'port' => env('REDIS_PORT', '6379'),
+ 'database' => env('REDIS_DB', '0'),
],
'cache' => [
+ 'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
- 'password' => env('REDIS_PASSWORD', null),
- 'port' => env('REDIS_PORT', 6379),
- 'database' => env('REDIS_CACHE_DB', 1),
+ 'username' => env('REDIS_USERNAME'),
+ 'password' => env('REDIS_PASSWORD'),
+ 'port' => env('REDIS_PORT', '6379'),
+ 'database' => env('REDIS_CACHE_DB', '1'),
],
],
diff --git a/config/filesystems.php b/config/filesystems.php
index 85f21a8..c5f244d 100644
--- a/config/filesystems.php
+++ b/config/filesystems.php
@@ -9,7 +9,7 @@ return [
|
| Here you may specify the default filesystem disk that should be used
| by the framework. The "local" disk, as well as a variety of cloud
- | based disks are available to your application. Just store away!
+ | based disks are available to your application for file storage.
|
*/
@@ -20,11 +20,11 @@ return [
| Filesystem Disks
|--------------------------------------------------------------------------
|
- | Here you may configure as many filesystem "disks" as you wish, and you
- | may even configure multiple disks of the same driver. Defaults have
- | been set up for each driver as an example of the required values.
+ | Below you may configure as many filesystem disks as necessary, and you
+ | may even configure multiple disks for the same driver. Examples for
+ | most supported storage drivers are configured here for reference.
|
- | Supported Drivers: "local", "ftp", "sftp", "s3"
+ | Supported drivers: "local", "ftp", "sftp", "s3"
|
*/
@@ -33,7 +33,7 @@ return [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
- 'throw' => true,
+ 'throw' => false,
],
'public' => [
@@ -53,7 +53,7 @@ return [
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
- 'throw' => true,
+ 'throw' => false,
],
],
diff --git a/config/hashing.php b/config/hashing.php
deleted file mode 100644
index 8425770..0000000
--- a/config/hashing.php
+++ /dev/null
@@ -1,52 +0,0 @@
- 'bcrypt',
-
- /*
- |--------------------------------------------------------------------------
- | Bcrypt Options
- |--------------------------------------------------------------------------
- |
- | Here you may specify the configuration options that should be used when
- | passwords are hashed using the Bcrypt algorithm. This will allow you
- | to control the amount of time it takes to hash the given password.
- |
- */
-
- 'bcrypt' => [
- 'rounds' => env('BCRYPT_ROUNDS', 10),
- ],
-
- /*
- |--------------------------------------------------------------------------
- | Argon Options
- |--------------------------------------------------------------------------
- |
- | Here you may specify the configuration options that should be used when
- | passwords are hashed using the Argon algorithm. These will allow you
- | to control the amount of time it takes to hash the given password.
- |
- */
-
- 'argon' => [
- 'memory' => 1024,
- 'threads' => 2,
- 'time' => 2,
- ],
-
-];
diff --git a/config/logging.php b/config/logging.php
index 5a99e96..8d94292 100644
--- a/config/logging.php
+++ b/config/logging.php
@@ -3,6 +3,7 @@
use Monolog\Handler\NullHandler;
use Monolog\Handler\StreamHandler;
use Monolog\Handler\SyslogUdpHandler;
+use Monolog\Processor\PsrLogMessageProcessor;
return [
@@ -11,33 +12,49 @@ return [
| Default Log Channel
|--------------------------------------------------------------------------
|
- | This option defines the default log channel that gets used when writing
- | messages to the logs. The name specified in this option should match
- | one of the channels defined in the "channels" configuration array.
+ | This option defines the default log channel that is utilized to write
+ | messages to your logs. The value provided here should match one of
+ | the channels present in the list of "channels" configured below.
|
*/
'default' => env('LOG_CHANNEL', 'stack'),
+ /*
+ |--------------------------------------------------------------------------
+ | Deprecations Log Channel
+ |--------------------------------------------------------------------------
+ |
+ | This option controls the log channel that should be used to log warnings
+ | regarding deprecated PHP and library features. This allows you to get
+ | your application ready for upcoming major versions of dependencies.
+ |
+ */
+
+ 'deprecations' => [
+ 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
+ 'trace' => env('LOG_DEPRECATIONS_TRACE', false),
+ ],
+
/*
|--------------------------------------------------------------------------
| Log Channels
|--------------------------------------------------------------------------
|
- | Here you may configure the log channels for your application. Out of
- | the box, Laravel uses the Monolog PHP logging library. This gives
- | you a variety of powerful log handlers / formatters to utilize.
+ | Here you may configure the log channels for your application. Laravel
+ | utilizes the Monolog PHP logging library, which includes a variety
+ | of powerful log handlers and formatters that you're free to use.
|
- | Available Drivers: "single", "daily", "slack", "syslog",
- | "errorlog", "monolog",
- | "custom", "stack"
+ | Available drivers: "single", "daily", "slack", "syslog",
+ | "errorlog", "monolog", "custom", "stack"
|
*/
'channels' => [
+
'stack' => [
'driver' => 'stack',
- 'channels' => ['daily'],
+ 'channels' => explode(',', env('LOG_STACK', 'single')),
'ignore_exceptions' => false,
],
@@ -45,31 +62,36 @@ return [
'driver' => 'single',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
+ 'replace_placeholders' => true,
],
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
- 'days' => 93,
+ 'days' => env('LOG_DAILY_DAYS', 14),
+ 'replace_placeholders' => true,
],
'slack' => [
'driver' => 'slack',
'url' => env('LOG_SLACK_WEBHOOK_URL'),
- 'username' => 'Laravel Log',
- 'emoji' => ':boom:',
+ 'username' => env('LOG_SLACK_USERNAME', 'Laravel Log'),
+ 'emoji' => env('LOG_SLACK_EMOJI', ':boom:'),
'level' => env('LOG_LEVEL', 'critical'),
+ 'replace_placeholders' => true,
],
'papertrail' => [
'driver' => 'monolog',
'level' => env('LOG_LEVEL', 'debug'),
- 'handler' => SyslogUdpHandler::class,
+ 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class),
'handler_with' => [
'host' => env('PAPERTRAIL_URL'),
'port' => env('PAPERTRAIL_PORT'),
+ 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'),
],
+ 'processors' => [PsrLogMessageProcessor::class],
],
'stderr' => [
@@ -80,16 +102,20 @@ return [
'with' => [
'stream' => 'php://stderr',
],
+ 'processors' => [PsrLogMessageProcessor::class],
],
'syslog' => [
'driver' => 'syslog',
'level' => env('LOG_LEVEL', 'debug'),
+ 'facility' => env('LOG_SYSLOG_FACILITY', LOG_USER),
+ 'replace_placeholders' => true,
],
'errorlog' => [
'driver' => 'errorlog',
'level' => env('LOG_LEVEL', 'debug'),
+ 'replace_placeholders' => true,
],
'null' => [
@@ -100,6 +126,7 @@ return [
'emergency' => [
'path' => storage_path('logs/laravel.log'),
],
+
],
];
diff --git a/config/mail.php b/config/mail.php
index 7b54202..df13d3d 100644
--- a/config/mail.php
+++ b/config/mail.php
@@ -7,13 +7,14 @@ return [
| Default Mailer
|--------------------------------------------------------------------------
|
- | This option controls the default mailer that is used to send any email
- | messages sent by your application. Alternative mailers may be setup
- | and used as needed; however, this mailer will be used by default.
+ | This option controls the default mailer that is used to send all email
+ | messages unless another mailer is explicitly specified when sending
+ | the message. All additional mailers can be configured within the
+ | "mailers" array. Examples of each type of mailer are provided.
|
*/
- 'default' => env('MAIL_MAILER', 'smtp'),
+ 'default' => env('MAIL_MAILER', 'log'),
/*
|--------------------------------------------------------------------------
@@ -24,43 +25,49 @@ return [
| their respective settings. Several examples have been configured for
| you and you are free to add your own as your application requires.
|
- | Laravel supports a variety of mail "transport" drivers to be used while
- | sending an e-mail. You will specify which one you are using for your
- | mailers below. You are free to add additional mailers as required.
+ | Laravel supports a variety of mail "transport" drivers that can be used
+ | when delivering an email. You may specify which one you're using for
+ | your mailers below. You may also add additional mailers if needed.
|
- | Supported: "smtp", "sendmail", "mailgun", "ses",
- | "postmark", "log", "array"
+ | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2",
+ | "postmark", "resend", "log", "array",
+ | "failover", "roundrobin"
|
*/
'mailers' => [
+
'smtp' => [
'transport' => 'smtp',
- 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
- 'port' => env('MAIL_PORT', 587),
+ 'url' => env('MAIL_URL'),
+ 'host' => env('MAIL_HOST', '127.0.0.1'),
+ 'port' => env('MAIL_PORT', 2525),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
- 'auth_mode' => null,
- 'verify_peer' => false,
+ 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'), PHP_URL_HOST)),
],
'ses' => [
'transport' => 'ses',
],
- 'mailgun' => [
- 'transport' => 'mailgun',
- ],
-
'postmark' => [
'transport' => 'postmark',
+ // 'message_stream_id' => env('POSTMARK_MESSAGE_STREAM_ID'),
+ // 'client' => [
+ // 'timeout' => 5,
+ // ],
+ ],
+
+ 'resend' => [
+ 'transport' => 'resend',
],
'sendmail' => [
'transport' => 'sendmail',
- 'path' => '/usr/sbin/sendmail -bs',
+ 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
],
'log' => [
@@ -71,6 +78,23 @@ return [
'array' => [
'transport' => 'array',
],
+
+ 'failover' => [
+ 'transport' => 'failover',
+ 'mailers' => [
+ 'smtp',
+ 'log',
+ ],
+ ],
+
+ 'roundrobin' => [
+ 'transport' => 'roundrobin',
+ 'mailers' => [
+ 'ses',
+ 'postmark',
+ ],
+ ],
+
],
/*
@@ -78,9 +102,9 @@ return [
| Global "From" Address
|--------------------------------------------------------------------------
|
- | You may wish for all e-mails sent by your application to be sent from
- | the same address. Here, you may specify a name and address that is
- | used globally for all e-mails that are sent by your application.
+ | You may wish for all emails sent by your application to be sent from
+ | the same address. Here you may specify a name and address that is
+ | used globally for all emails that are sent by your application.
|
*/
@@ -89,23 +113,4 @@ return [
'name' => env('MAIL_FROM_NAME', 'Example'),
],
- /*
- |--------------------------------------------------------------------------
- | Markdown Mail Settings
- |--------------------------------------------------------------------------
- |
- | If you are using Markdown based email rendering, you may configure your
- | theme and component paths here, allowing you to customize the design
- | of the emails. Or, you may simply stick with the Laravel defaults!
- |
- */
-
- 'markdown' => [
- 'theme' => 'default',
-
- 'paths' => [
- resource_path('views/vendor/mail'),
- ],
- ],
-
];
diff --git a/config/queue.php b/config/queue.php
index 1d2b807..116bd8d 100644
--- a/config/queue.php
+++ b/config/queue.php
@@ -7,22 +7,22 @@ return [
| Default Queue Connection Name
|--------------------------------------------------------------------------
|
- | Laravel's queue API supports an assortment of back-ends via a single
- | API, giving you convenient access to each back-end using the same
- | syntax for every one. Here you may define a default connection.
+ | Laravel's queue supports a variety of backends via a single, unified
+ | API, giving you convenient access to each backend using identical
+ | syntax for each. The default queue connection is defined below.
|
*/
- 'default' => env('QUEUE_CONNECTION', 'sync'),
+ 'default' => env('QUEUE_CONNECTION', 'database'),
/*
|--------------------------------------------------------------------------
| Queue Connections
|--------------------------------------------------------------------------
|
- | Here you may configure the connection information for each server that
- | is used by your application. A default configuration has been added
- | for each back-end shipped with Laravel. You are free to add more.
+ | Here you may configure the connection options for every queue backend
+ | used by your application. An example configuration is provided for
+ | each backend supported by Laravel. You're also free to add more.
|
| Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null"
|
@@ -35,53 +35,77 @@ return [
],
'database' => [
- //'connection' => 'jobs',
'driver' => 'database',
- 'table' => 'jobs',
- 'queue' => 'default',
- 'retry_after' => 90,
+ 'connection' => env('DB_QUEUE_CONNECTION'),
+ 'table' => env('DB_QUEUE_TABLE', 'jobs'),
+ 'queue' => env('DB_QUEUE', 'default'),
+ 'retry_after' => (int) env('DB_QUEUE_RETRY_AFTER', 90),
+ 'after_commit' => false,
],
'beanstalkd' => [
'driver' => 'beanstalkd',
- 'host' => 'localhost',
- 'queue' => 'default',
- 'retry_after' => 90,
+ 'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'),
+ 'queue' => env('BEANSTALKD_QUEUE', 'default'),
+ 'retry_after' => (int) env('BEANSTALKD_QUEUE_RETRY_AFTER', 90),
+ 'block_for' => 0,
+ 'after_commit' => false,
],
'sqs' => [
'driver' => 'sqs',
- 'key' => env('SQS_KEY', 'your-public-key'),
- 'secret' => env('SQS_SECRET', 'your-secret-key'),
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
- 'queue' => env('SQS_QUEUE', 'your-queue-name'),
- 'region' => env('SQS_REGION', 'us-east-1'),
+ 'queue' => env('SQS_QUEUE', 'default'),
+ 'suffix' => env('SQS_SUFFIX'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'after_commit' => false,
],
'redis' => [
'driver' => 'redis',
- 'connection' => 'default',
+ 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'),
'queue' => env('REDIS_QUEUE', 'default'),
- 'retry_after' => 90,
+ 'retry_after' => (int) env('REDIS_QUEUE_RETRY_AFTER', 90),
'block_for' => null,
+ 'after_commit' => false,
],
],
+ /*
+ |--------------------------------------------------------------------------
+ | Job Batching
+ |--------------------------------------------------------------------------
+ |
+ | The following options configure the database and table that store job
+ | batching information. These options can be updated to any database
+ | connection and table which has been defined by your application.
+ |
+ */
+
+ 'batching' => [
+ 'database' => env('DB_CONNECTION', 'sqlite'),
+ 'table' => 'job_batches',
+ ],
+
/*
|--------------------------------------------------------------------------
| Failed Queue Jobs
|--------------------------------------------------------------------------
|
| These options configure the behavior of failed queue job logging so you
- | can control which database and table are used to store the jobs that
- | have failed. You may change them to any database / table you wish.
+ | can control how and where failed jobs are stored. Laravel ships with
+ | support for storing failed jobs in a simple file or in a database.
+ |
+ | Supported drivers: "database-uuids", "dynamodb", "file", "null"
|
*/
'failed' => [
'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'),
- 'database' => env('DB_CONNECTION', 'pgsql'),
+ 'database' => env('DB_CONNECTION', 'sqlite'),
'table' => 'failed_jobs',
],
diff --git a/config/services.php b/config/services.php
index 58f6e71..27a3617 100644
--- a/config/services.php
+++ b/config/services.php
@@ -14,12 +14,6 @@ return [
|
*/
- 'mailgun' => [
- 'domain' => env('MAILGUN_DOMAIN'),
- 'secret' => env('MAILGUN_SECRET'),
- 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
- ],
-
'postmark' => [
'token' => env('POSTMARK_TOKEN'),
],
@@ -30,11 +24,15 @@ return [
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
],
- 'w3id' => [
- 'access' => env('AUTH_W3ID_BLUEGROUP_ACCESS'),
- 'admin' => env('AUTH_W3ID_BLUEGROUP_ADMIN'),
- 'client_id' => env('AUTH_W3ID_CLIENT_ID'),
- 'client_secret' => env('AUTH_W3ID_SECRET'),
- 'redirect' => '/auth/w3id/callback',
- ],
+ 'resend' => [
+ 'key' => env('RESEND_KEY'),
+ ],
+
+ 'slack' => [
+ 'notifications' => [
+ 'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'),
+ 'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'),
+ ],
+ ],
+
];
diff --git a/config/session.php b/config/session.php
index b5effcd..f0b6541 100644
--- a/config/session.php
+++ b/config/session.php
@@ -9,16 +9,16 @@ return [
| Default Session Driver
|--------------------------------------------------------------------------
|
- | This option controls the default session "driver" that will be used on
- | requests. By default, we will use the lightweight native driver but
- | you may specify any of the other wonderful drivers provided here.
+ | This option determines the default session driver that is utilized for
+ | incoming requests. Laravel supports a variety of storage options to
+ | persist session data. Database storage is a great default choice.
|
| Supported: "file", "cookie", "database", "apc",
- | "memcached", "redis", "array"
+ | "memcached", "redis", "dynamodb", "array"
|
*/
- 'driver' => env('SESSION_DRIVER', 'file'),
+ 'driver' => env('SESSION_DRIVER', 'database'),
/*
|--------------------------------------------------------------------------
@@ -27,13 +27,14 @@ return [
|
| Here you may specify the number of minutes that you wish the session
| to be allowed to remain idle before it expires. If you want them
- | to immediately expire on the browser closing, set that option.
+ | to expire immediately when the browser is closed then you may
+ | indicate that via the expire_on_close configuration option.
|
*/
'lifetime' => env('SESSION_LIFETIME', 120),
- 'expire_on_close' => false,
+ 'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false),
/*
|--------------------------------------------------------------------------
@@ -41,21 +42,21 @@ return [
|--------------------------------------------------------------------------
|
| This option allows you to easily specify that all of your session data
- | should be encrypted before it is stored. All encryption will be run
- | automatically by Laravel and you can use the Session like normal.
+ | should be encrypted before it's stored. All encryption is performed
+ | automatically by Laravel and you may use the session like normal.
|
*/
- 'encrypt' => false,
+ 'encrypt' => env('SESSION_ENCRYPT', false),
/*
|--------------------------------------------------------------------------
| Session File Location
|--------------------------------------------------------------------------
|
- | When using the native session driver, we need a location where session
- | files may be stored. A default has been set for you but a different
- | location may be specified. This is only needed for file sessions.
+ | When utilizing the "file" session driver, the session files are placed
+ | on disk. The default storage location is defined here; however, you
+ | are free to provide another location where they should be stored.
|
*/
@@ -72,33 +73,35 @@ return [
|
*/
- 'connection' => env('SESSION_CONNECTION', null),
+ 'connection' => env('SESSION_CONNECTION'),
/*
|--------------------------------------------------------------------------
| Session Database Table
|--------------------------------------------------------------------------
|
- | When using the "database" session driver, you may specify the table we
- | should use to manage the sessions. Of course, a sensible default is
- | provided for you; however, you are free to change this as needed.
+ | When using the "database" session driver, you may specify the table to
+ | be used to store sessions. Of course, a sensible default is defined
+ | for you; however, you're welcome to change this to another table.
|
*/
- 'table' => 'sessions',
+ 'table' => env('SESSION_TABLE', 'sessions'),
/*
|--------------------------------------------------------------------------
| Session Cache Store
|--------------------------------------------------------------------------
|
- | When using the "apc" or "memcached" session drivers, you may specify a
- | cache store that should be used for these sessions. This value must
- | correspond with one of the application's configured cache stores.
+ | When using one of the framework's cache driven session backends, you may
+ | define the cache store which should be used to store the session data
+ | between requests. This must match one of your defined cache stores.
+ |
+ | Affects: "apc", "dynamodb", "memcached", "redis"
|
*/
- 'store' => env('SESSION_STORE', null),
+ 'store' => env('SESSION_STORE'),
/*
|--------------------------------------------------------------------------
@@ -118,9 +121,9 @@ return [
| Session Cookie Name
|--------------------------------------------------------------------------
|
- | Here you may change the name of the cookie used to identify a session
- | instance by ID. The name specified here will get used every time a
- | new session cookie is created by the framework for every driver.
+ | Here you may change the name of the session cookie that is created by
+ | the framework. Typically, you should not need to change this value
+ | since doing so does not grant a meaningful security improvement.
|
*/
@@ -136,24 +139,24 @@ return [
|
| The session cookie path determines the path for which the cookie will
| be regarded as available. Typically, this will be the root path of
- | your application but you are free to change this when necessary.
+ | your application, but you're free to change this when necessary.
|
*/
- 'path' => '/',
+ 'path' => env('SESSION_PATH', '/'),
/*
|--------------------------------------------------------------------------
| Session Cookie Domain
|--------------------------------------------------------------------------
|
- | Here you may change the domain of the cookie used to identify a session
- | in your application. This will determine which domains the cookie is
- | available to in your application. A sensible default has been set.
+ | This value determines the domain and subdomains the session cookie is
+ | available to. By default, the cookie will be available to the root
+ | domain and all subdomains. Typically, this shouldn't be changed.
|
*/
- 'domain' => env('SESSION_DOMAIN', null),
+ 'domain' => env('SESSION_DOMAIN'),
/*
|--------------------------------------------------------------------------
@@ -162,11 +165,11 @@ return [
|
| By setting this option to true, session cookies will only be sent back
| to the server if the browser has a HTTPS connection. This will keep
- | the cookie from being sent to you if it can not be done securely.
+ | the cookie from being sent to you when it can't be done securely.
|
*/
- 'secure' => env('SESSION_SECURE_COOKIE', false),
+ 'secure' => env('SESSION_SECURE_COOKIE'),
/*
|--------------------------------------------------------------------------
@@ -175,11 +178,11 @@ return [
|
| Setting this value to true will prevent JavaScript from accessing the
| value of the cookie and the cookie will only be accessible through
- | the HTTP protocol. You are free to modify this option if needed.
+ | the HTTP protocol. It's unlikely you should disable this option.
|
*/
- 'http_only' => true,
+ 'http_only' => env('SESSION_HTTP_ONLY', true),
/*
|--------------------------------------------------------------------------
@@ -188,12 +191,27 @@ return [
|
| This option determines how your cookies behave when cross-site requests
| take place, and can be used to mitigate CSRF attacks. By default, we
- | do not enable this as other CSRF protection services are in place.
+ | will set this value to "lax" to permit secure cross-site requests.
|
- | Supported: "lax", "strict"
+ | See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value
+ |
+ | Supported: "lax", "strict", "none", null
|
*/
'same_site' => env('SESSION_SAME_SITE', 'lax'),
+ /*
+ |--------------------------------------------------------------------------
+ | Partitioned Cookies
+ |--------------------------------------------------------------------------
+ |
+ | Setting this value to true will tie the cookie to the top-level site for
+ | a cross-site context. Partitioned cookies are accepted by the browser
+ | when flagged "secure" and the Same-Site attribute is set to "none".
+ |
+ */
+
+ 'partitioned' => env('SESSION_PARTITIONED_COOKIE', false),
+
];
diff --git a/config/view.php b/config/view.php
deleted file mode 100644
index 2acfd9c..0000000
--- a/config/view.php
+++ /dev/null
@@ -1,33 +0,0 @@
- [
- resource_path('views'),
- ],
-
- /*
- |--------------------------------------------------------------------------
- | Compiled View Path
- |--------------------------------------------------------------------------
- |
- | This option determines where all the compiled Blade templates will be
- | stored for your application. Typically, this is within the storage
- | directory. However, as usual, you are free to change this value.
- |
- */
-
- 'compiled' => realpath(storage_path('framework/views')),
-
-];
diff --git a/routes/console.php b/routes/console.php
index 75dd0cd..a116d8b 100644
--- a/routes/console.php
+++ b/routes/console.php
@@ -1,18 +1,24 @@
comment(Inspiring::quote());
-})->describe('Display an inspiring quote');
+Schedule::job(new MailSend(TRUE))
+ ->timezone('Australia/Melbourne')
+ ->everyMinute()
+ ->withoutOverlapping();
+
+Schedule::job(new MailSend(FALSE))
+ ->timezone('Australia/Melbourne')
+ ->twiceDaily(1,13);
+
+Schedule::job(new SystemHeartbeat)
+ ->timezone('Australia/Melbourne')
+ ->hourly();
+
+Schedule::job(new AddressIdleDomain)
+ ->timezone('Australia/Melbourne')
+ ->weeklyOn(0,'01:00');
\ No newline at end of file