Skip to content

Shared devices discussion outcome #1739

@olliesilvester

Description

@olliesilvester

Meeting attended by myself, @jacob720, @oliwenmandiamond, @RJCD-Diamond, @EmsArnold, @fajinyuan, @Relm-Arrowny

We came up with some decisions relating to #1490, #1554, #1532, #503

Q: What should my device factory files (eg i04.py) look like for beamlines which share devices
A: For devices which have the same config, these factories can live in a shared file (eg i04_shared.py). Need to check with @tpoliaw that this is compatible with the new device manager.

Q: How should dodal ensure that shared devices can only be written to by the permitted beamline?
A: GDA uses a user office database to check which beamline+visit has permission to use devices at which times. This database is just mapping visits to beamtime and beamline. See here for a bit more detail. We should do this check in dodal. For this, we require:

  • Working authn/authz
  • A decorator for the writable shared devices so that requests to write will check if the user has beamline. Some users (eg beamline scientists) could have permission to always write to the files.
    When BlueAPI sends info to numtracker about the user/visit, these services can also provide dodal with the information about if the beamline has access to these devices and for how long. Will need discussion with core for best implementation details.

We didn't discuss who or when this should be done, but it's probably the best long term solution

Q: Can we move our device configuration to be in yaml files outside of dodal?
A: We all thought this would be good. @fajinyuan's team are happy to put some effort into this in the new year, and will involve other teams for design opinions.

Acceptance Criteria

  • We document these decisions in the dodal docs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions