* Create minimalistic plugin map and test plugin.
* Pass secrets and attributes to the plugin when creating catalogs or sets. Add tests for CreateSet and CreateCatalog repo methods.
* make fmt and extract out getPrivateCatalog and getCatalog helper methods.
* Exporting TestPluginServer so it can be used in the handlers.
* Keep separate persisted data from host catalogs lookups which facilitate passing it onto the plugins.
* Add TODO to merge get Catalog and get Persisted data.
* Adding tests for unimplemented being returned by the plugin.
* Use GetFields() instead of AsMap() to confirm attributes should be populated. Make clone consistent between catalog and sets.
Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com>
* `recovery` is only used by the API (and the main module, for decryption)
* `wrapper` is only used by the CLI right now
Moving these brings them closer to the code that uses them, and makes
the SDK package a bit more clear in terms of functionality.
This moves the generated pb files to the `sdk` module. This allows third parties to make use of them if desired (e.g. in upcoming plugins) and moves away from the `gen` nomenclature in the directory, since we are going to be adding some extra interface functions to the messages.
* Sessions support for read:self and cancel:self permissions. This is automatic with fallback; no API change is needed.
* Strips out values from listing if only self actions are allowed on the resource and the user ID is different. This prevents a default ACL of id=*;type=session;actions=read:self,cancel:self from causing all values to be visible when listing.
* Adds an unprivileged user to development/testing instances. This user has only default permissions plus the ability to authorize sessions in the default target.