tobischo / gokeepasslib

A library to read and write keepass 2 files written in go
MIT License
251 stars 30 forks source link

Go reference #88

Closed harshkolhatkar closed 2 years ago

harshkolhatkar commented 2 years ago

Hi, I'm looking at the entries returned by say db.Content.Root.Groups, and not able to figure out what those individual fields are. Is it possible to have some description of the structs and what each field of the struct signifies? Any external KeePass documentation would be great too. Thanks!

tobischo commented 2 years ago

Hi @harshkolhatkar for the most part I defined the field based on the XML from the files I had available.

There should be documentation at https://keepass.info/ but personally I did not find it particularly accessible.

Therefore I can probably explain most fields based on the usage, but not necessarily link to some docs. I'll try to find some time to give you a writeup of it

harshkolhatkar commented 2 years ago

Sounds good. Much appreciated!

tobischo commented 2 years ago

Alright, so looking at the group: https://github.com/tobischo/gokeepasslib/blob/ff48262307bc7babcbafd30a151caec582b83abf/group.go#L33-L48

UUID                    // Unique identifier per group
Name                    // human readable group name
Notes                   // text notes providing context about groups
IconID                  // ID of the icon to be displayed in keepass2 client
CustomIconUUID          // UUID of the custom/user defined icon to be displayed - is stored elsewhere
Times                   // Time metadata
IsExpanded              // Whether the group should be displayed expanded in the keepass2 UI
DefaultAutoTypeSequence // sequence for new entries in the group to call for automatically triggering login procedures, e.g. username [tab] password [enter]
EnableAutoType          // whether auto type is even enabled for the keepass2 default client
EnableSearching         // whether the entries and the group should be found while searching
LastTopVisibleEntry     // no idea
Entries                 // a list of individual entries with passwords which are combined under this group
Groups                  // a list of child groups
tobischo commented 2 years ago

@harshkolhatkar does this cover it for you for now?

harshkolhatkar commented 2 years ago

Apologies for the late reply and thanks for this! I found a workaround for what I was going to do, so it solved my problem. Thanks anyway!