Conversation
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
Greptile OverviewGreptile SummaryThis PR refactors the project event architecture to be more modular and scalable. It introduces a new event bus system using Redis pub/sub for inter-container communication with a local memory bus for single-container delivery, replacing the old event service. The SSE (Server-Sent Events) implementation has been completely rewritten with improved permission caching, rate limiting via Redis keystore, and better resource cleanup. Key Changes:
Issues Found:
Confidence Score: 4/5
Important Files Changed
|
backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts
Outdated
Show resolved
Hide resolved
backend/src/ee/services/project-events/project-events-sse-service.ts
Outdated
Show resolved
Hide resolved
|
I don't think this is intentional: "data": {
"eventType": "secret:create",
"payload": [
{
"environment": "dev",
"secretPath": "/",
"secretKeys": "SECRET_KEY1"
},
{
"environment": "dev",
"secretPath": "/",
"secretKeys": "SECRET_KEY2"
}
]
}I batch-created secrets via. the UI, and the payload split the secret keys into two different objects; shouldn't secretKeys always be an array (even if its only one key)? secretKeys implies its an array |
|
This seems dangerous: {
"type": "secret-manager",
"data": {
"eventType": "secret:create",
"payload": [
{
"environment": "dev",
"secretPath": "/test",
"secretKeys": "TEST_KEY"
}
]
}
}I am only subscribed to the |
In the response, can we please call this |
91d6286 to
c4a20ab
Compare

Context
This PR revamps the project event architecture. It makes various part of the project events modular. Most of the external parts stays same and only internal improvements.
I have also revamped the documentation to be more aligned with the permission model than the old one.
Screenshots
Steps to verify the change
Type
Checklist
type(scope): short description(scope is optional, e.g.,fix: prevent crash on syncorfix(api): handle null response).