.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "File::KDBX::Group 3pm" .TH File::KDBX::Group 3pm "2022-11-20" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" File::KDBX::Group \- A KDBX database group .SH "VERSION" .IX Header "VERSION" version 0.906 .SH "DESCRIPTION" .IX Header "DESCRIPTION" A group in a \s-1KDBX\s0 database is a type of object that can contain entries and other groups. .PP There is also some metadata associated with a group. Each group in a database is identified uniquely by a \s-1UUID.\s0 An entry can also have an icon associated with it, and there are various timestamps. Take a look at the attributes to see what's available. .PP A \fBFile::KDBX::Group\fR is a subclass of File::KDBX::Object. View its documentation to see other attributes and methods available on groups. .SH "ATTRIBUTES" .IX Header "ATTRIBUTES" .SS "name" .IX Subsection "name" The human-readable name of the group. .SS "notes" .IX Subsection "notes" Free form text string associated with the group. .SS "is_expanded" .IX Subsection "is_expanded" Whether or not subgroups are visible when listed for user selection. .SS "default_auto_type_sequence" .IX Subsection "default_auto_type_sequence" The default auto-type keystroke sequence, inheritable by entries and subgroups. .SS "enable_auto_type" .IX Subsection "enable_auto_type" Whether or not the entry is eligible to be matched for auto-typing, inheritable by entries and subgroups. .SS "enable_searching" .IX Subsection "enable_searching" Whether or not entries within the group can show up in search results, inheritable by subgroups. .SS "last_top_visible_entry" .IX Subsection "last_top_visible_entry" The \s-1UUID\s0 of the entry visible at the top of the list. .SS "entries" .IX Subsection "entries" Array of entries contained within the group. .SS "groups" .IX Subsection "groups" Array of subgroups contained within the group. .SH "METHODS" .IX Header "METHODS" .SS "entries" .IX Subsection "entries" .Vb 1 \& \e@entries = $group\->entries; .Ve .PP Get an array of direct child entries within a group. .SS "all_entries" .IX Subsection "all_entries" .Vb 1 \& \e&iterator = $kdbx\->all_entries(%options); .Ve .PP Get an File::KDBX::Iterator over \fIentries\fR within a group. Supports the same options as \*(L"groups\*(R", plus some new ones: .IP "\(bu" 4 \&\f(CW\*(C`auto_type\*(C'\fR \- Only include entries with auto-type enabled (default: false, include all) .IP "\(bu" 4 \&\f(CW\*(C`searching\*(C'\fR \- Only include entries within groups with searching enabled (default: false, include all) .IP "\(bu" 4 \&\f(CW\*(C`history\*(C'\fR \- Also include historical entries (default: false, include only current entries) .SS "add_entry" .IX Subsection "add_entry" .Vb 2 \& $entry = $group\->add_entry($entry); \& $entry = $group\->add_entry(%entry_attributes); .Ve .PP Add an entry to a group. If \f(CW$entry\fR already has a parent group, it will be removed from that group before being added to \f(CW$group\fR. .SS "remove_entry" .IX Subsection "remove_entry" .Vb 2 \& $entry = $group\->remove_entry($entry); \& $entry = $group\->remove_entry($entry_uuid); .Ve .PP Remove an entry from a group's array of entries. Returns the entry removed or \f(CW\*(C`undef\*(C'\fR if nothing removed. .SS "groups" .IX Subsection "groups" .Vb 1 \& \e@groups = $group\->groups; .Ve .PP Get an array of direct subgroups within a group. .SS "all_groups" .IX Subsection "all_groups" .Vb 1 \& \e&iterator = $group\->all_groups(%options); .Ve .PP Get an File::KDBX::Iterator over \fIgroups\fR within a groups, deeply. Options: .IP "\(bu" 4 \&\f(CW\*(C`inclusive\*(C'\fR \- Include \f(CW$group\fR itself in the results (default: true) .IP "\(bu" 4 \&\f(CW\*(C`algorithm\*(C'\fR \- Search algorithm, one of \f(CW\*(C`ids\*(C'\fR, \f(CW\*(C`bfs\*(C'\fR or \f(CW\*(C`dfs\*(C'\fR (default: \f(CW\*(C`ids\*(C'\fR) .SS "add_group" .IX Subsection "add_group" .Vb 2 \& $new_group = $group\->add_group($new_group); \& $new_group = $group\->add_group(%group_attributes); .Ve .PP Add a group to a group. If \f(CW$new_group\fR already has a parent group, it will be removed from that group before being added to \f(CW$group\fR. .SS "remove_group" .IX Subsection "remove_group" .Vb 2 \& $removed_group = $group\->remove_group($group); \& $removed_group = $group\->remove_group($group_uuid); .Ve .PP Remove a group from a group's array of subgroups. Returns the group removed or \f(CW\*(C`undef\*(C'\fR if nothing removed. .SS "all_objects" .IX Subsection "all_objects" .Vb 1 \& \e&iterator = $groups\->all_objects(%options); .Ve .PP Get an File::KDBX::Iterator over \fIobjects\fR within a group, deeply. Groups and entries are considered objects, so this is essentially a combination of \*(L"groups\*(R" and \*(L"entries\*(R". This won't often be useful, but it can be convenient for maintenance tasks. This method takes the same options as \*(L"groups\*(R" and \*(L"entries\*(R". .SS "add_object" .IX Subsection "add_object" .Vb 2 \& $new_entry = $group\->add_object($new_entry); \& $new_group = $group\->add_object($new_group); .Ve .PP Add an object (either a File::KDBX::Entry or a File::KDBX::Group) to a group. This is the generic equivalent of the object forms of \*(L"add_entry\*(R" and \*(L"add_group\*(R". .SS "remove_object" .IX Subsection "remove_object" .Vb 2 \& $group\->remove_object($entry); \& $group\->remove_object($group); .Ve .PP Remove an object (either a File::KDBX::Entry or a File::KDBX::Group) from a group. This is the generic equivalent of the object forms of \*(L"remove_entry\*(R" and \*(L"remove_group\*(R". .SS "effective_default_auto_type_sequence" .IX Subsection "effective_default_auto_type_sequence" .Vb 1 \& $text = $group\->effective_default_auto_type_sequence; .Ve .PP Get the value of \*(L"default_auto_type_sequence\*(R", if set, or get the inherited effective default auto-type sequence of the parent. .SS "effective_enable_auto_type" .IX Subsection "effective_enable_auto_type" .Vb 1 \& $text = $group\->effective_enable_auto_type; .Ve .PP Get the value of \*(L"enable_auto_type\*(R", if set, or get the inherited effective auto-type enabled value of the parent. .SS "effective_enable_searching" .IX Subsection "effective_enable_searching" .Vb 1 \& $text = $group\->effective_enable_searching; .Ve .PP Get the value of \*(L"enable_searching\*(R", if set, or get the inherited effective searching enabled value of the parent. .SS "is_empty" .IX Subsection "is_empty" .Vb 1 \& $bool = $group\->is_empty; .Ve .PP Get whether or not the group is empty (has no subgroups or entries). .SS "is_root" .IX Subsection "is_root" .Vb 1 \& $bool = $group\->is_root; .Ve .PP Determine if a group is the root group of its connected database. .SS "is_recycle_bin" .IX Subsection "is_recycle_bin" .Vb 1 \& $bool = $group\->is_recycle_bin; .Ve .PP Get whether or not a group is the recycle bin of its connected database. .SS "is_entry_templates" .IX Subsection "is_entry_templates" .Vb 1 \& $bool = $group\->is_entry_templates; .Ve .PP Get whether or not a group is the group containing entry template in its connected database. .SS "is_last_selected" .IX Subsection "is_last_selected" .Vb 1 \& $bool = $group\->is_last_selected; .Ve .PP Get whether or not a group is the prior selected group of its connected database. .SS "is_last_top_visible" .IX Subsection "is_last_top_visible" .Vb 1 \& $bool = $group\->is_last_top_visible; .Ve .PP Get whether or not a group is the latest top visible group of its connected database. .SS "path" .IX Subsection "path" .Vb 1 \& $string = $group\->path; .Ve .PP Get a string representation of a group's lineage. This is used as the substitution value for the \&\f(CW\*(C`{GROUP_PATH}\*(C'\fR placeholder. See \*(L"Placeholders\*(R" in File::KDBX::Entry. .PP For a root group, the path is simply the name of the group. For deeper groups, the path is a period-separated sequence of group names between the root group and \f(CW$group\fR, including \f(CW$group\fR but \fInot\fR the root group. In other words, paths of deeper groups leave the root group name out. .PP .Vb 4 \& Database \& \-> Root # path is "Root" \& \-> Foo # path is "Foo" \& \-> Bar # path is "Foo.Bar" .Ve .PP Yeah, it doesn't make much sense to me, either, but this matches the behavior of KeePass. .SS "size" .IX Subsection "size" .Vb 1 \& $size = $group\->size; .Ve .PP Get the size (in bytes) of a group, including the size of all subroups and entries, if any. .SS "depth" .IX Subsection "depth" .Vb 1 \& $depth = $group\->depth; .Ve .PP Get the depth of a group within a database. The root group is at depth 0, its direct children are at depth 1, etc. A group not in a database tree structure returns a depth of \-1. .SH "BUGS" .IX Header "BUGS" Please report any bugs or feature requests on the bugtracker website .PP When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature. .SH "AUTHOR" .IX Header "AUTHOR" Charles McGarvey .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2022 by Charles McGarvey. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.