project8 / dripline

Slow controls for medium scale physics experiments based on AMQP centralized messaging
http://www.project8.org/dripline
1 stars 0 forks source link

lockout and wire-protocol 1.4.x #134

Closed laroque closed 9 years ago

laroque commented 9 years ago

We're adding a lockout syntax to the wire protocol. Important notes are:

  1. request messages now have an optional field "lockout_key" which, if present, must be a string of 32 hex characters
  2. Any request which changes state (OP_SEND, OP_CMD, OP_SET, OP_RUN, OP_CONFIG if value provided) can be locked-out, and will require a valid key to execute. OP_GET and OP_CONFIG without a value do not change state but only query it, and thus are always valid
  3. There should be a valid cmd for each of ("lock" and "unlock" which change the state of an endpoint to locked or not locked; a provider should change not only its own lock status, but that of all of its endpoints)
  4. The unlock cmd should support values=["force"] which will unlock without providing a key
  5. Adding return codes 307 and 308 for access denied and invalid key formats
  6. CLI tools (notably dripline_agent but possibly others) will support --lockout-key <str>