npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

strapi-security-suite

v0.2.4

Published

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

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

⚠️ Legal Drama

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