You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Previously the PEDM profiles and assignments were wrapped up in a Policy object, which was loaded at startup and then maintained via an IdList structure. API calls would have the Policy in their context and interact with it directly.
This PR:
Strips out unused features from the API surface area (session / temporary elevations, revoke elevation). We don't support them right now and it just adds noise.
The remaining Policy item needed for elevation is the current user selected profile. We load this from the DB at the API front -end and pass it back to where it's needed.
The API now calls the database directly to query/update/delete. In most cases transactions are used where we need to enforce consistency, but we are not expecting a high volume of calls or needing a high level of atomicity.
The API and database design is not the most well thought-out, but it closely reflects the existing APIs to minimize disruption elsewhere (API clients like RDM, as well as avoid significant behaviour changes that may introduce new bugs).
Concerns are:
There's no effort to maintain compatibility here. Existing PEDM users will need to uninstall, wipe out their %programdata%\Agent\pedm directory, and reinstall. Internally I'll provide a script to do that. RDM will be blocked from using any version that doesn't include these changes.
The handling of users is not optimal (see Allan Zhang (@allan2) related PR). This goes back to Kyle's original implementation and if we had made these changes earlier, we could've addressed it, but there is no time now. We'll have some technical debt here to correct in the future.
Let maintainers know that an action is required on their side
Add the label
release-requiredPlease cut a new release (Devolutions Gateway, Devolutions Agent, Jetsocat, PowerShell module)
when you request a maintainer to cut a new release (Devolutions Gateway, Devolutions Agent, Jetsocat, PowerShell module)
Add the label
release-blockerFollow-up is required before cutting a new release
if a follow-up is required before cutting a new release
Add the label
publish-requiredPlease publish libraries (`Devolutions.Gateway.Utils`, OpenAPI clients, etc)
when you request a maintainer to publish libraries (Devolutions.Gateway.Utils, OpenAPI clients, etc.)
Add the label
publish-blockerFollow-up is required before publishing libraries
if a follow-up is required before publishing libraries
Benoît Cortier (CBenoit)
changed the title
Store PEDM configuration in SQLite instead of JSON files
refactor: store PEDM configuration in SQLite instead of JSON files
May 23, 2025
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
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.
Previously the PEDM profiles and assignments were wrapped up in a
Policyobject, which was loaded at startup and then maintained via anIdListstructure. API calls would have thePolicyin their context and interact with it directly.This PR:
Policyitem needed for elevation is the current user selected profile. We load this from the DB at the API front -end and pass it back to where it's needed.The API and database design is not the most well thought-out, but it closely reflects the existing APIs to minimize disruption elsewhere (API clients like RDM, as well as avoid significant behaviour changes that may introduce new bugs).
Concerns are: