RFC: auto-discovering pup-* extensions #586
jkirsteins
started this conversation in
Ideas
Replies: 1 comment
-
|
I think there is value in this type of discovery also because delivering via e.g. Homebrew means benefitting from its dependency management capabilities. However that's a larger change, so meanwhile proposing this improvement for the existing extension flow: #593 (i.e. allowing multiple extensions to be installed via github, including from private repos) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
I'd like to improve the way pup extensions are discovered, so that they can be delivered easily via
brewetc. Feedback welcome.Summary
Today,
pupextensions are discovered through pup-managed installs andmanifest.jsonfiles. I’d like to simplify this model and make extensions easier to use by auto-discovering executables namedpup-*, while keeping a clear security boundary before extensions receive Datadog credentials.The key idea: discovery should be automatic, but execution should require explicit enablement.
This would also improve distribution through package managers such as Homebrew. A Homebrew formula can install an executable like
pup-fooontoPATH, but it cannot reliably auto-register that extension withpupduringpost_installon macOS because Homebrew prevents modifying the user environment.Current behavior
Currently, extensions are installed and discovered through pup’s extension directory and manifest model. This works, but it means an executable already available on
PATHlike:does not automatically show up as:
pup foounless it is separately registered or installed through pup.
Proposed model
pup would discover extensions from:
There would be no requirement to create or manage a pup-specific extensions/bin directory.
Any executable named pup- could appear in:
pup extension list
pup --help
but it would not be runnable with Datadog auth until explicitly enabled.
Enable / disable UX
To allow an auto-discovered extension:
Trust scopes:
Default would be exact.
This matters because extensions receive Datadog auth credentials through the environment when run. An unenabled extension should fail closed in
noninteractive contexts.
Migration from manifests
Note: could be worth skipping migration, since I doubt these are used currently.
If we want to migrate legacy extensions, then we would on first run:
exact)Beta Was this translation helpful? Give feedback.
All reactions