-
Notifications
You must be signed in to change notification settings - Fork 29
Feat/v5 support #102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Feat/v5 support #102
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Features - ✅ Strapi v5.3.2 compatibility with @strapi/sdk-plugin - ✅ Dashboard widget showing real-time Socket.IO statistics - ✅ Mobile-optimized Monitoring & Settings pages with responsive design - ✅ Enhanced input fields (48px height, 16px font on mobile) - ✅ Fixed GitHub Issues strapi-community#95 (images collection) and strapi-community#82 (CollectionTypes with relations) - ✅ Entity Service API instead of deprecated db.query() - ✅ Multi-language support (EN, DE, ES, FR, PT) ## UI/UX Improvements - Modern styled-components for responsive layouts - Touch-friendly inputs with proper sizing - Hidden number spinners on mobile for better UX - Gradient stat cards with hover effects - Auto-refresh every 60 seconds to reduce database load ## Technical Changes - Uses Entity Service API for proper relation handling - Transform service for media and relation fields - Proper sanitization and permission checks - Redis adapter support for multi-server scaling - Namespace support for isolated Socket.IO endpoints - Role-based permissions with content-type granularity
🔒 Security: - Add sanitize-sensitive-fields middleware - Filters password, tokens, secrets from Socket.IO events - Recursive deep sanitization for nested objects 🔧 Transaction Fixes: - Use transactionCtx.onCommit for lifecycle hooks - Prevent 'Transaction query already complete' errors - afterDelete uses raw() to avoid sanitization queries - Disable bulkDeleteMany hooks (Strapi v5 transaction limitations) ✅ Event Matrix: - Create (single/bulk): Full events with sanitization - Update (single/bulk): Full events with sanitization - Delete (single): ID-only events via raw() - Delete (bulk): Disabled due to transaction conflicts
- Replace eval('require') with lazy-loaded require()
- Cleaner transaction context initialization
- No more build warnings
- Maintains same functionality for post-commit hooks
- Remove emoji from service welcome message - Convert React default imports to named imports (3 files) - Document legitimate Query Engine usage for admin::api-token * admin::api-token is Core Admin Entity * Follows official Strapi Core implementation * Source: strapi/strapi/packages/core/admin/server/strategies/api-token.js - Build clean without warnings Note: Using strapi.db.query() for admin::api-token is correct per Strapi Core implementation
- Rename package from strapi-plugin-io to @strapi-community/plugin-io - Update version from 3.0.0 to 5.0.0 (matching Strapi v5) - Modernize README with better structure and examples - Update all documentation references to new package name - Update repository URLs to strapi-community organization - Update TypeScript import paths - Remove internal DOCUMENTATION_UPDATE.md file - Update migration guide with v5 versioning - Enhance Getting Started guide - Build and verify successful for v5.0.0
- Hide increment/decrement buttons for cleaner UI - Removed browser native spinners and Strapi NumberInput spinners - Simplified CSS for number inputs - Better mobile and desktop experience
- Replace hardcoded colors with Strapi theme system - Use theme.colors.neutral0, neutral100, neutral150 etc. - Proper background colors for cards and items - Dark mode compatible shadows - Better contrast in both light and dark modes - Keep gradient header with white text for visual impact
- Created StyledSelect component with theme-aware colors - Removed hardcoded white background and border colors - Added proper hover and focus states - Dark mode compatible dropdown options
- Document v5.0.0 release with all breaking changes - Include migration path from v2 to v5 - List all new features and improvements - Document UI/UX improvements - Add version support matrix - Include deprecation notices - Add upcoming features roadmap
- Fix broken documentation links to non-existent files - Remove invalid 'populate' option from contentTypes config examples - Document all 12 helper functions with examples - Add complete Monitoring Service documentation - Add Entity Subscription helpers documentation - Clarify admin panel structure and widget requirements (Strapi v5.13+) - Update types.d.ts with entity subscription interfaces - Update api-reference.json with new methods - Update docs/api/io-class.md with entity subscription section - Fix version references (3.x -> 5.x)
- Remove npm ci (not needed, dist is pre-built) - Update actions to v4 - Use Node 20 - Add --access public for scoped package - Include dist/ in repository for direct publish
- Add populate configuration to content type schema (Zod) - Implement refetch logic in lifecycle hooks for create/update events - Support multiple populate formats: '*', true, string[], object - Add TypeScript types for PopulateConfig - Document populate option in README with examples - Update npm-publish workflow to build before publish Populate allows including relations in emitted Socket.IO events. When configured, the plugin refetches entities with populated relations after create/update operations before emitting.
- Add recursive removal of sensitive fields (password, token, apiKey, etc.) - Support custom sensitiveFields in plugin config - Apply sanitization to both emit() and raw() methods - Update TypeScript types and documentation Default blocked fields: password, resetPasswordToken, confirmationToken, refreshToken, accessToken, secret, apiKey, privateKey, token, salt, hash
- Add build job for PR/push validation - Add npm cache for faster CI - Verify plugin structure before publish - Check version matches release tag - Support npm tags: latest, beta, alpha, next - Add post-publish verification - Upload build artifacts between jobs
- Remove @strapi/sdk-plugin from peerDependencies (build-only dep) - Use flexible version ranges for peerDependencies - Mark design-system and icons as optional peers - Remove --legacy-peer-deps from CI workflow
- @strapi/strapi: 5.3.2 -> 5.33.0 - @strapi/design-system: 2.0.0-rc.30 -> 2.0.2 - @strapi/icons: 2.0.0-rc.30 -> 2.0.2 - prettier: 3.6.2 -> 3.7.4 - eslint: 8.57.0 -> 8.57.1 - eslint-config-prettier: 9.1.0 -> 9.1.2 Note: React 18, react-router-dom 6, zod 3 kept for Strapi v5 compatibility
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Type of change
Relevant Issue(s)