Skip to content

Issues related to the creation of new clients : Extending JsonRPC DB handling capabilities.  #134

@Gugli

Description

@Gugli

Hello,

I have started to make a new client for KeepassRPC.
The client is an Ansible "lookup" plugin, to allow automation of server deployment with secrets read from Keepass, and new secrets generated and stored to Keepass. This plugin will be published opensource soon. SRP and JsonRPC already work well.

First very small issue I encountered : the schema part of the "origin" URL in websocket handshake is restricted. I know it can be changed in the client via advanced config, but it is not very convenient, and I don't think it offers any security improvement. I have chosen to piggyback "moz-extension://" for user convenience.

But the bigger issue is the list of JSonRPC callable functions : some are missing to allow for new clients types.
From my understanding, some of those calls are "low-level" or "plumbing" calls, directly accessing the DB : GetDatabaseFileName; GetRoot, GetChildGroups, GetAllChildEntries, AddGroup, RemoveEntry, etc... : they use the Database UniqueIDs and the changes requested correspond 1-to-1 to changes in the database.
Other calls are more "convenient"/"porcelain", and seem to be specific to browser-extension clients : AddLogin, UpdateLogin, FindLogins. They rely more on "Keefox"-oriented notions, such as URLs and Fields.
The issue when writing a plugin such as mine, is that there are no "plumbing" functions for Entry edition (apart from RemoveEntry). Such functions should rely on Keepass-oriented notions like "properties", and allow access to attached files and so on.

If I were to make a Pull Request adding such functions, do you think it will be able to be merged one day ? Or is it a direction you don't want this plugin to explore ?
Such functions would include AddEntry, AddEntryProperty, GetEntryProperty, GetEntryAttachement, etc...

Thanks for your help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions