Cop 561 be implement core plugin loading and enable disable mechanism#390
Open
Hercilio1 wants to merge 20 commits intoepic/plugin-archfrom
Open
Conversation
# COP-353
- Implement Hash ID usage in GraphQL APIs
- Replace with Relay Global ID with Hash ID
- Current Relay Global ID is a case sensitive base64 which can easily be
decoded, we are looking into make it very hard to decode.
- Remove PK fields from all GraphQL Object Types exposed externally.
- Deprecate field and make it return same thing as Relay Global ID
- Ensure backwards compatibility so we don't break old URLs for now?
## Notes:
- This PR covered the entire AC and also optimized baseapp\_comments and
baseapp\_auth. However, we still need to optimize more models.
- Due to optimization issues, the migrations responsible for generating
the public\_id for the existing models were not implemented. This will
be addressed in a follow-up story.
- The FE also could not be reviewed and will be addressed in a follow-up
story.
- There is not need for QA right now. We will need to do a big
regression test once the feature is done. That's when we onboard a QA.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- New Features
- Public ID (UUID) support across apps with automatic mapping and admin
listing.
- GraphQL additions: blockers_count, blocking_count, is_blocked_by_me,
and notification_settings.
- Improvements
- Unified RelayNode across the GraphQL schema with a strategy-based
global ID system.
- Query optimization helpers and pre-optimization hooks to reduce DB
load.
- More robust async handling of relay IDs in realtime flows.
- Behavior Changes
- Anonymous users can no longer fetch users by primary key.
- Migrations/Chores
- Multiple migrations add triggers to maintain public ID mappings.
- Documentation
- READMEs updated to reference RelayNode in examples.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Hercilio Ortiz <ho@tsl.io>
Just updating the hashids branch
**Acceptance Criteria** Implement Hash ID usage in DRF APIs - Build helper functions for generating and validating Hash IDs. (that was done by previous story) - Update DRF serializers to deliver Hash ID instead of PK by default. - Ensure backwards compatibility so we don't break old URLs for now? --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…kend into COP-561-be-implement-core-plugin-loading-and-enable-disable-mechanism
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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
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.
Important Notes
This PR covers the following deliveries:
/baseapp-auth,/baseapp-comments, and/baseapp-pages, exploring the new plugin architecture./commentsremoving all concrete models (and their migrations).Acceptance Criteria
Description
Implement the core plugin engine for
baseapp-backend, including plugin discovery, loading, and enable/disable behavior. This story focuses on the plug-and-play mechanics and ensuring the system is robust through thorough unit and integration testing.A
testproject/environment will be used to validate the design by creating a new app that follows the plugin structure and exercises the full plugin lifecycle and registration features.This story is done when:
testproject/to validate:testproject/.Notes
testproject/plugin app is the reference for validating behavior and for future migrations.pyproject.tomlto define entry points.Approvd
https://app.approvd.io/silverlogic/COP/stories/45020