Commit Graph

537 Commits (5d38faa2574a9cf8aaddc920bc4ed3dfccc44791)

Author SHA1 Message Date
Daniel Supernault c07706a415
Lint 3 weeks ago
Daniel Supernault d7cfd07204
Fix PostEditModal. Closes #7084 3 weeks ago
Your Name 95e316e86f Apply staged formatting and session config changes 3 weeks ago
Shlee 19c8bea00b
Update queue.php 3 weeks ago
Shlee 1d712e1478
Update default mailer configuration to use MAIL_DRIVER 3 weeks ago
Shlee 690d710693
Update database.php 3 weeks ago
Shlee 5383c2ecc9
Update cache.php 3 weeks ago
Shlee ab2447b0f4
Update session.php 3 weeks ago
Shlee 0200c9e0cd
Change default log stack from 'single' to 'daily' 3 weeks ago
Shlee fff81fe596
Update broadcasting.php 3 weeks ago
Shlee 15d30f803d
Update cache.php 3 weeks ago
Shlee 1b034aa429
Update session.php 4 weeks ago
Shift c81c4be683 Default config files
In an effort to make upgrading the constantly changing config files easier, Shift defaulted them and merged your true customizations - where ENV variables may not be used.
4 weeks ago
Shlee 32bec52edb
Merge pull request #6985 from pixelfed/chore/laravel12-skeleton-uplift-v2
Laravel 12 skeleton uplift v2
4 weeks ago
Daniel Supernault 584ce27f71
Add Sanctum support 4 weeks ago
Shlee d18e871338
Update filesystems.php 4 weeks ago
Your Name 41c9b8830f refactor: rename MigrateLocalS3MediaURL class and move media move-storage commands to unstable
- Rename App\Console\Commands\Admin\MigrateLocalS3MediaURL to MediaUpdateS3CDNUrl
  (class + filename only; the admin:MigrateLocalS3MediaURL signature is unchanged)
- Move the three MediaMoveStorage{LocalToCloud,CloudToLocal,CloudToCloud} commands
  into App\Console\Commands\Admin\Unstable and change their signatures from
  admin: to unstable:
- Update the scheduler in bootstrap/app.php, the command README, the
  config/filesystems.php reference comment, and the affected feature tests
4 weeks ago
Your Name 80214c5e71 chore: uplift framework skeleton toward Laravel 12 defaults
Modernize artisan and public/index.php to the streamlined bootstrap form,
migrate factories/seeders autoload to PSR-4 (database/seeds -> seeders), and
backfill missing env-driven config keys across app, session, database, queue,
mail, logging, and cache. All changes are additive and preserve existing
Pixelfed behavior and defaults.
4 weeks ago
Your Name 7aa1f8936d Revert "Merge pull request #6981 from pixelfed/chore/laravel12-skeleton-uplift"
This reverts commit 39384e2f93, reversing
changes made to f76bcfa3f9.
4 weeks ago
Your Name 4e83eb0867 chore: uplift framework skeleton toward Laravel 12 defaults
Modernize artisan and public/index.php to the streamlined bootstrap form,
migrate factories/seeders autoload to PSR-4 (database/seeds -> seeders), and
backfill missing env-driven config keys across app, session, database, queue,
mail, logging, and cache. All changes are additive and preserve existing
Pixelfed behavior and defaults.
4 weeks ago
Shlee 9dae391e65
Merge pull request #6760 from pixelfed/shleeable-patch-5
Fix LDAP login issues with mail
1 month ago
Your Name 68366c7dde polish 1 month ago
Your Name 70b4a05b5c Add admin:MediaMoveStorageCloudToCloud for cold S3->S3 migration
Cold-migrate existing media from an old S3 bucket to the current cloud
bucket, one media row at a time (like MigrateLocalS3MediaURL):
- Source = --sourceDisk (default s3-old, reads AWS_OLD_*); destination = the
  current cloud disk (config filesystems.cloud). No .env editing: operators
  point AWS_* at the new bucket first (restarting workers as usual) so new
  uploads/downloads land on the new bucket, then run this to backfill old data.
- Copies media (+thumbnail) source->destination, verifies by size and by
  sha256 of the freshly-written destination object (against original_sha256),
  rewrites cdn_url/optimized_url/thumbnail_url to the destination host, and
  GCs the source objects (unless --keep-source). Busts caches.
- Only touches rows whose cdn_url still points at the source host; idempotent.
- --sourceDisk / --limit / --dry-run / --force.
- Adds the s3-old disk (AWS_OLD_*) to config/filesystems.php and feature tests.
1 month ago
Your Name 3be6dbf547 chore: remove unused import and fix spacing in cache config 1 month ago
Daniel Supernault 44275154ea
Fix cache error 1 month ago
Your Name c0cde2f682 refactor: move 52 legacy models from App\ to App\Models\
Move all Eloquent models from the app/ root directory to app/Models/
for consistency with modern Laravel conventions. The project already had
54 models in App\Models; this migrates the remaining 52 legacy models.

Changes:
- Move 52 model files from app/ to app/Models/
- Update namespace declarations in each model
- Update all ~1000 import references across the codebase
- Add Relation::morphMap() in AppServiceProvider for backward
  compatibility with existing polymorphic database records
- Add missing HasSnowflakePrimary imports for models that relied
  on same-namespace resolution
1 month ago
Daniel Supernault 42f361540c
Pint config/ 1 month ago
dansup 8e99e0c316
Merge pull request #6880 from pixelfed/fix/cache-serializable-classes
Laravel 13 prep: add serializable_classes to cache config
1 month ago
Shlee 542434785c
Set strict mode to true in database configuration 1 month ago
Shlee 35cb9a9dcb
Change DB_STRICT environment variable to true 1 month ago
Shlee 323cfc9cf7
Update database.php 1 month ago
Shlee 2f466b02d7
Update database.php 1 month ago
Your Name ba90d1bd20 feat: add serializable_classes to cache config for Laravel 13 prep
Laravel 13 defaults serializable_classes to false, blocking arbitrary
PHP object unserialization from cache. This project caches CustomFilter
model instances (in getCachedFiltersForAccount), so it must be
explicitly allowlisted.

All other cache usage in this project stores scalars, arrays, or
Fractal-transformed array output — no other classes need allowlisting.
1 month ago
Your Name 1b64c59beb fix: enable MySQL strict mode and remove defaultStringLength(191)
- Enable strict mode for MySQL connection to prevent silent data
  truncation, zero-date insertion, and division-by-zero errors.
- Remove Schema::defaultStringLength(191) which was a MySQL 5.7
  workaround no longer needed on MySQL 8.0+ / MariaDB 10.3+.
1 month ago
Your Name 5a364be58b fix: remove deprecated Passport::personalAccessClientId() and enableImplicitGrant()
- Remove Passport::personalAccessClientId() (removed in Passport v13, auto-discovers now)
- Remove Passport::enableImplicitGrant() (legacy grant, no clients use it)
- Flatten config instance.oauth.pat to pat_enabled (remove dead pat.id key)
- Add OAUTH_PAT_ENABLED=false to .env.example and .env.docker.example
- Show swal alert when PATs disabled instead of hidden API error
- Improve store() error handling to surface 403 messages in the UI
- Remove OAUTH_PAT_ID row from admin diagnostics blade
1 month ago
Your Name 8a2649b3ff feat: add critical path test suite and fix auth/config issues
Test Infrastructure:
- Modernize phpunit.xml (bootstrap, source block, Laravel 12 env vars)
- Configure tests/Pest.php with pest()->extend(TestCase::class)->in('Feature')
- Add docker-compose.test.yml (Redis for test suite)
- Add composer test/test:quick scripts
- Rename CACHE_DRIVER to CACHE_STORE across config (backwards compatible)
- Update .env.testing for in-memory SQLite + Docker Redis

Test Coverage (190 tests):
- CriticalRoutes: public routes, auth routes, API endpoints, middleware, schedule
- Auth/LoginTest: login, logout, rate limiting, redirect behavior
- Auth/RegisterTest: registration flow, validation, disabled registration
- Auth/PasswordResetTest: reset request, token validation, password update
- Auth/TwoFactorTest: 2FA checkpoint, setup behind password confirmation
- Auth/PasswordConfirmationTest: sudo mode flow via Laravel password.confirm
- Api/ScopeTest: scope enforcement, public endpoints, admin access

Bugs Fixed:
- Fix unauthenticated API returning 500 instead of 401 (AuthenticationException
  not handled in custom exception renderer in bootstrap/app.php)
- Replace custom DangerZone middleware with Laravel password.confirm
- Add HasFactory trait to Profile model for test factories

Bugs Documented (known-bugs group):
- Registration crashes with str_ends_with TypeError (RegisterController:82)
- OAuth routes use legacy array syntax causing ReflectionFunction TypeError
1 month ago
Your Name 5693b1581f refactor: remove redundant aliases from config/app.php
Remove auto-discovered package aliases (Purify, FFMpeg, Captcha) and
the unused Eloquent alias. These are registered automatically via
package auto-discovery.

Framework facade aliases must remain until all 344+ short-import
usages (e.g. 'use Cache;') are migrated to fully-qualified imports.
1 month ago
Your Name 8e41f6fdf8 refactor: migrate to modern bootstrap/app.php architecture
Consolidate the legacy Laravel 5-era kernel/handler architecture into
the modern Application::configure() pattern introduced in Laravel 11:

- HTTP middleware stack → bootstrap/app.php withMiddleware()
- Console schedule → bootstrap/app.php withSchedule()
- Exception handling → bootstrap/app.php withExceptions()
- Route registration → bootstrap/app.php withRouting()
- Service providers → bootstrap/providers.php

Deleted files:
- app/Http/Kernel.php
- app/Console/Kernel.php
- app/Exceptions/Handler.php
- app/Providers/RouteServiceProvider.php
- app/Providers/BroadcastServiceProvider.php

Removed framework providers from config/app.php (auto-registered by
Application::configure). Package providers use auto-discovery.

All 107 tests pass. Schedule, routes, and middleware verified working.
1 month ago
Shlee 21ec7b2b29
Merge pull request #6818 from pixelfed/refactor/fix-pdo-constant-deprecation
fix: resolve PDO::MYSQL_ATTR_SSL_CA deprecation on PHP 8.5
1 month ago
Your Name 5041e18050 fix: resolve PDO::MYSQL_ATTR_SSL_CA deprecation on PHP 8.5
Use Pdo\Mysql::ATTR_SSL_CA when available (PHP 8.5+), falling back to
the legacy PDO::MYSQL_ATTR_SSL_CA constant for older PHP versions.
This eliminates the deprecation warning during Docker builds and runtime.
1 month ago
Your Name edb4368b08 refactor: replace deprecated laravel/helpers with native alternatives
Replace all deprecated helper function calls:
- str_slug() → Str::slug()
- starts_with() → str_starts_with()
- ends_with() → str_ends_with()
- array_first() → Arr::first()
- array_last() → Arr::last()
- array_flatten() → Arr::flatten()

Remove laravel/helpers package from composer.json as it is no longer
needed and will not be maintained for Laravel 13.
1 month ago
Your Name 552a55c2d2 Upgrade images to v4 1 month ago
Shlee d9e55199f5
Update auth.php 1 month ago
Daniel Supernault 16a413aa8b
Bump version 1 month ago
dansup 268ab6dba0
Merge branch 'staging' into remove-exp-pue 1 month ago
dansup 7354f63563
Merge branch 'staging' into remove-exp-rec 1 month ago
dansup 4c0c6bdec0
Merge pull request #6577 from shleeable/remove-exp-lc
Remove deprecated EXP_LC (hidden like counts) config
1 month ago
dansup ec38262338
Merge pull request #6576 from shleeable/covidremove
Clean up Covid/WHO
1 month ago
dansup 24697b77fc
Merge pull request #6579 from shleeable/remove-exp-loops
Remove deprecated legacy loops feature entirely
1 month ago
Daniel Supernault c44689a7e7
Update cors config 1 month ago