JSPM

strapi-security-suite

0.1.5
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 81
    • Score
      100M100P100Q59551F
    • License MIT

    All-in-one authentication and session security plugin for Strapi v5

    Package Exports

    • strapi-security-suite/package.json
    • strapi-security-suite/strapi-admin
    • strapi-security-suite/strapi-server

    Readme

    ๐Ÿ›ก๏ธ Strapi Security Suite (Beta)

    The Last Plugin Youโ€™ll Ever Need to Sleep at Night

    A high-performance, in-memory security enhancement plugin for Strapi v5, Session-obsessed. Built for the chaotic genius admin who refuses to get breached by a stale token.
    Powered by rage, memory maps, and accountability.


    โœจ Why This Exists

    Because โ€œjust trusting sessionsโ€ is how breaches happen.
    Because the admin panel deserves better.
    Because your team deserves a real security layer, not a checkbox.


    โš”๏ธ Features That Slap

    ๐Ÿ”’ Auto Logout (with taste)

    Kick idle admins like itโ€™s office closing time.

    • ๐Ÿ” Tracks every request
    • โฒ๏ธ Custom inactivity timeout from DB
    • ๐Ÿง  Memory-first with sessionActivityMap
    • ๐Ÿ’จ Triggers soft or nuclear logout depending on your vibe
    • ๐Ÿ’พ Graceful 440s, JS responses, and gentle redirects

    ๐Ÿšท Multi-Session Lock

    One admin = one session. No shadow clones allowed.

    • ๐Ÿ’ฅ First login wins, others are denied
    • ๐Ÿงน Cleans old sessions like a digital janitor

    ๐Ÿง„ Session Exorcism Layerโ„ข

    Revoked tokens get ghosted instantly.
    Even if Strapi tries to pretend theyโ€™re still cute.

    • ๐Ÿ”ช Middleware blocks
    • ๐Ÿชฆ Session cookie wipeout
    • ๐Ÿ“ฉ Headers set for frontend rejections
    • ๐Ÿ—‘๏ธ isLoggedIn purged with prejudice

    ๐Ÿง  Smart Middleware Stack

    • trackActivity: Updates timestamps on every move
    • rejectRevokedTokens: Blocks dead sessions like a haunted firewall
    • interceptRenewToken: Stops Strapiโ€™s clingy /renew-token requests from reviving zombies

    ๐Ÿงช Configuration Schema

    {
      "autoLogoutTime": 30,
      "multipleSessionsControl": true,
      "passwordExpiryDays": 30,
      "nonReusablePassword": true,
      "enablePasswordManagement": true
    }

    Defined in the content-type:
    plugin::strapi-security-suite.security_settings


    ๐Ÿง  Architecture Youโ€™ll Brag About

    • ๐Ÿงฌ In-memory tracking via Map()
    • โฑ๏ธ startAutoLogoutWatcher() with 5s intervals
    • ๐Ÿ”„ Frontend fetch interceptor for 440s
    • ๐Ÿงน JS logout payload injected server-side to destroy sessions, cookies, and self-respect

    โš™๏ธ Admin Panel UI

    • ๐ŸŽ›๏ธ Control timeouts, session logic, and password rules
    • ๐Ÿ“œ Planned audit logs, charts, and drama
    • ๐ŸŒŒ Future dashboard: all your infra sins visualized

    ๐Ÿ” Frontend Catch Logic

    • Fetch wrapper intercepts 440
    • Purges local/session storage
    • Sends you crying to /session-expired
    • Optionally calls /admin/logout for drama

    ๐Ÿ“ฆ Installation

    yarn add strapi-security-suite

    or

    npm install strapi-security-suite

    ๐Ÿ”น config/plugins.js

    Add the following entry inside your config/plugins.js file:

    module.exports = ({ env }) => ({
      'strapi-security-suite': {
        enabled: true,
      },
    });

    ๐Ÿ”ฎ Upcoming

    Feature Status
    Password Expiry ๐Ÿ› ๏ธ In Dev
    Non-Reusable Passwords ๐Ÿ› ๏ธ In Dev
    Admin Activity Logs ๐Ÿ”œ
    Security Dashboard ๐Ÿ”œ
    Brute Force Detection ๐Ÿ”œ
    Real-time Session Visualization ๐Ÿ”œ (and spicy)

    ๐Ÿ’ฅ Real-World Impact

    โ€œWe installed this and now our interns canโ€™t share logins anymore.โ€
    โ€” CTO, probably

    โ€œOur admin panel feels like it judges us now. I love it.โ€
    โ€” That one developer who cares


    ๐Ÿง‘โ€๐Ÿ’ป Author

    LPIX-11


    ๐Ÿ’ก Philosophy

    Security should be:

    • Fast
    • Unforgiving
    • Elegant
    • Mildly judgmental

    This plugin is in Beta.
    You break it, it breaks you back, but weโ€™ll still love you.
    Not liable for insecure vibes.