Skip to content

Possible operational issue with hidden IDs in dagger core actions #1241

@shykes

Description

@shykes

The current Europa design relies on hidden fields attached to core types like dagger.#FS, dagger.#Secret etc. These hidden fields include an ID, to be filled by the engine at runtime.

Hiding these IDs has DX benefits: don’t confuse developers with a field they’re not supposed to worry about anyway, or risk incorrectly filling it.

But hiding IDs may have downsides also:

  • it makes it hard to share the computed IDs with the user along with the rest of computed values. This in turn makes it hard for users to troubleshoot or understand some aspects of the run. For example, do values a and b have the same fs ID like they should, and if not, why? etc.
  • it also makes it hard for developers to inject IDs, for example for mocking and pure-cue tests.

This concern may not materialize - perhaps users don’t need these debug and mocking capabilities, or they can achieve them in a different way. But if the issue does materialize, we may need to change IDs to be not hidden. This may in turn require changing the security properties of IDs: specifically it should not be a security issue to leak a ID value, or to inject an ID value.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions