Commit Graph

510 Commits (7fa0615448feabaee8d8e3949d50ee6319010643)

Author SHA1 Message Date
Daniel Supernault 42f361540c
Pint config/ 4 weeks ago
dansup 8e99e0c316
Merge pull request #6880 from pixelfed/fix/cache-serializable-classes
Laravel 13 prep: add serializable_classes to cache config
4 weeks ago
Shlee 542434785c
Set strict mode to true in database configuration 4 weeks ago
Shlee 35cb9a9dcb
Change DB_STRICT environment variable to true 4 weeks ago
Shlee 323cfc9cf7
Update database.php 4 weeks ago
Shlee 2f466b02d7
Update database.php 4 weeks 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.
4 weeks 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+.
4 weeks 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
4 weeks 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
4 weeks 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.
4 weeks 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.
4 weeks 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
4 weeks 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.
4 weeks 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.
4 weeks ago
Your Name 552a55c2d2 Upgrade images to v4 4 weeks 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
Daniel Supernault 52e8710b56
Bump version 1 month ago
Daniel Supernault fbff6ed307
Update trustedproxy config 1 month ago
Your Name 3c9fc9a1fe Remove EXP_PUE flag, post editing is always enabled
Remove the 'pue' entry from config/exp.php and the abort_if guard
in StatusEditController. Post editing is now unconditionally available.
5 months ago
Your Name 715c671712 Remove deprecated Loops feature entirely
- Remove 'loops' from config/exp.php and instance.discover.loops from config/instance.php
- Remove loops API routes (loopsApi, loopWatch) from web-api.php
- Delete LoopComponent.vue, loops.js entry point, and loops blade view
- Remove EXP_LOOPS diagnostic row from admin diagnostics page

The Loops feature was deprecated and hardcoded to disabled.
5 months ago
Your Name 6ecb43f923 Remove deprecated exp.rec (recommendations) config
The rec key was hardcoded to false and marked deprecated. No code
references it. Remove the dead entry from config/exp.php.
5 months ago
Your Name 1f01a15e64 Remove deprecated EXP_LC (hidden like counts) config
Remove the EXP_LC env var from config/exp.php and its diagnostic
row from the admin diagnostics page. This feature was already
marked as deprecated and unused.
5 months ago
Your Name 41089fcccd Remove COVID label feature flag and related code
Remove ENABLE_COVID_LABEL, COVID_LABEL_URL, and COVID_LABEL_ORG env
vars and all associated backend/frontend code:

- config/instance.php: remove label.covid config block
- StatusLabelService: remove keyword matching, return static false
- Site/Config.php: remove label.covid from API response
- StatusCard.vue: remove COVID banner and labelRedirect method
- GroupStatus.vue: remove COVID banner and labelRedirect method
- diagnostics blade: remove COVID diagnostic rows
5 months ago
dansup d2d16b17a1
Merge pull request #6491 from pixelfed/shleeable-patch-5
Update logging.php to default to `daily` via stack
6 months ago
Daniel Supernault ff2c7a60cf
Update CuratedOnboarding notify admin. Fixes #6400 6 months ago
Shlee 255e929fe7
Update logging.php 7 months ago
Shlee 4f1a13faba
Update mail.php 7 months ago
Daniel Supernault 72fcc173de
Bump version 7 months ago
Severin b014443090
Secure sendmail to disable user commands from mail address
See https://www.postfix.org/sendmail.1.html under Security
8 months ago
Shlee bf665d9d22
Update filesystems.php 10 months ago
Shlee b157b720e3
Update filesystems.php 10 months ago
Shlee b587de7759
Update image.php 10 months ago
dansup ce6c69ea5b
Merge pull request #6324 from pixelfed/shleeable-patch-2
Update app.php - ProtoneMedia\LaravelFFMpeg
11 months ago
Shlee 22e280b5a5
Update app.php 11 months ago
Shlee 1d67f43d26
Update database.php 11 months ago
dansup 481d5653f7
Merge pull request #6163 from Krafting/patch-1
Change default max number of blocked/muted account
11 months ago
Daniel Supernault ab085452a7
Update instance config 1 year ago
Daniel Supernault 0980519a91
Update app config, add description and rule env variables 1 year ago
Krafting 15376e913d
Change default max number of blocked/muted account 1 year ago
Daniel Supernault f5f7b3e678
Bump version to v0.12.6 1 year ago
Daniel Supernault 2427884c2c
Update app config 1 year ago
Daniel Supernault 5539dd0e1b
Update app config, add Str alias 1 year ago
Daniel Supernault dedc5e304a
Update pixelfed config 1 year ago