403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.21
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/codex/current/config/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/codex/current/config/codex.php
<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Internal and public API URLs
    |--------------------------------------------------------------------------
    |
    | The Next.js dashboard server-fetches the Laravel API at build /
    | revalidate time. It targets the loopback URL with an explicit
    | Host: api.codex.philiprehberger.com header injected by the fetch
    | wrapper at web/src/lib/codex-api.ts. The public URL is the only one
    | that should end up in payloads (asset paths, signed-route URLs).
    |
    */
    'internal_api_url' => env('CODEX_API_INTERNAL_URL', 'http://127.0.0.1'),
    'public_api_url' => env('CODEX_PUBLIC_API_URL', 'https://api.codex.philiprehberger.com'),

    /*
    |--------------------------------------------------------------------------
    | Seeder safety
    |--------------------------------------------------------------------------
    |
    | Two layers of production guard: BaseSeeder's constructor and
    | SeederGuardServiceProvider's boot listener. Both check this flag.
    | Set to true only for the first-deploy seed via the deploy script's
    | --first-deploy flag.
    |
    */
    'seeders' => [
        'allow_in_production' => env('CODEX_ALLOW_SEEDERS_IN_PRODUCTION', false),
    ],

    /*
    |--------------------------------------------------------------------------
    | Vocabulary caps
    |--------------------------------------------------------------------------
    |
    | Banner appears in each Filament list view at warn; creation blocked
    | at cap. Asserted by every *Seeder before run. Capabilities are the
    | heatmap row count — the scannable-in-3s test, paper-prototype
    | verified before Phase 4 commits.
    |
    */
    'vocabulary' => [
        'capabilities' => ['warn' => 60, 'cap' => 80],
        'technologies' => ['warn' => 80, 'cap' => 120],
        'industries' => ['warn' => 20, 'cap' => 30],
        'architectures' => ['warn' => 10, 'cap' => 20],
        'deliverables' => ['warn' => 10, 'cap' => 20],
        'design_styles' => ['warn' => 10, 'cap' => 20],
        'project_tags' => ['warn' => 40, 'cap' => 80],
    ],

    /*
    |--------------------------------------------------------------------------
    | Visibility / asset-redaction window
    |--------------------------------------------------------------------------
    |
    | When a project flips from public to redacted/private, the old asset
    | route returns 410 Gone for this many days so edge caches evict the
    | URL rather than 404-retrying. After the window, the route returns
    | 404 for clean garbage collection.
    |
    */
    'visibility' => [
        'gone_window_days' => 14,
    ],

    /*
    |--------------------------------------------------------------------------
    | Cache report keys (Phase 5)
    |--------------------------------------------------------------------------
    |
    | Filament observer calls CacheInvalidator::forgetReports() on writes;
    | the helper iterates this list and forgets every key. Centralised so
    | adding a fifth cached endpoint updates one place. Phase 7 test
    | asserts the helper forgets every key listed here.
    |
    */
    'cache' => [
        'report_keys' => [
            'codex:heatmap',
            'codex:capability-matrix',
            'codex:reports:gaps',
            'codex:reports:bullets',
            'codex:search:index',
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Audit-log retention
    |--------------------------------------------------------------------------
    |
    | codex:archive-audit-log archives rows older than this many days to
    | the monthly JSONL.gz on S3 and deletes them from the live table.
    | merge_capability / unmerge_capability / visibility_change rows are
    | exempt — they are the moderation provenance and retained forever.
    |
    */
    'audit_log' => [
        'live_retention_days' => 90,
        'exempt_actions' => [
            'merge_capability',
            'unmerge_capability',
            'visibility_change',
            'force_delete',
            'reset_2fa',
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Revalidation — Filament observer → Next.js dashboard
    |--------------------------------------------------------------------------
    |
    | Comma-separated list of HMAC secrets. The FIRST entry is the active
    | write key; all entries are accepted on the verifier side (the
    | Next.js /api/revalidate handler) for no-flap rotation. See
    | infra/RECOVERY.md (Phase 8) for the two-step rotation procedure.
    |
    | next_revalidate_url targets the Next.js dashboard origin (loopback
    | in production via Apache + Host header injection per Phase 5/6).
    | Phase 6 will set this to http://127.0.0.1:<port> when the dashboard
    | comes up; Phase 1-3 leaves it null and the RevalidateClient becomes
    | a no-op (logs a warning), which is correct behaviour.
    |
    | queue_threshold: bulk operations beyond this tag count get pushed
    | onto the database queue (codex-queue PM2 process) instead of
    | inline-fired during the request lifecycle.
    |
    */
    'revalidate' => [
        'secrets' => env('CODEX_REVALIDATE_SECRETS'),
        'next_revalidate_url' => env('CODEX_NEXT_REVALIDATE_URL'),
        'queue_threshold' => env('CODEX_REVALIDATE_QUEUE_THRESHOLD', 10),
    ],

    'next_revalidate_url' => env('CODEX_NEXT_REVALIDATE_URL'),

    /*
    |--------------------------------------------------------------------------
    | Asset signing (Phase 3/5/6)
    |--------------------------------------------------------------------------
    |
    | Comma-separated list of HMAC secrets, same shape as the revalidate
    | secrets but a SEPARATE rotation path so leaking a signature doesn't
    | force an APP_KEY rotation (which would invalidate sessions + every
    | encrypted-at-rest column).
    |
    */
    'asset_signing' => [
        'keys' => env('CODEX_ASSET_SIGNING_KEYS'),
        'ttl' => env('CODEX_ASSET_SIGNING_TTL', 7200), // 2h — exceeds revalidate=3600 SSR cache window
    ],

    /*
    |--------------------------------------------------------------------------
    | API strict-query-keys (Phase 5)
    |--------------------------------------------------------------------------
    |
    | When true, /api/v1/* endpoints 422 on any query key not in their
    | FormRequest allow-list. When false (Phase 2 flip after public SDK
    | story exists), unknown keys are silently ignored to match the
    | Stripe / GitHub / AWS SDK convention. Default true for the
    | dashboard-only consumer.
    |
    */
    'api' => [
        'strict_query_keys' => env('CODEX_API_STRICT_QUERY_KEYS', true),
    ],

];

Youez - 2016 - github.com/yon3zu
LinuXploit