Skip to content

Conversation

@Schero94
Copy link
Collaborator

Description

Type of change

  • [x ] Documentation (updates to the documentation or readme)
  • [ x] Bug fix (a non-breaking change that fixes an issue)
  • Enhancement (improving an existing functionality like performance)
  • New feature (a non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Relevant Issue(s)

Schero94 and others added 22 commits November 27, 2025 14:11
## 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
- Allow manual publishing via GitHub Actions UI
- Select npm tag (latest, beta, next) when manually triggered
- Skip version check for manual dispatch
@Schero94 Schero94 merged commit 808b2d1 into strapi-community:main Dec 21, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant