wirelineio / wns

Wireline Naming Service
GNU General Public License v3.0
0 stars 1 forks source link

Design naming / version evolution scheme for WNS #37

Closed dboreham closed 4 years ago

dboreham commented 4 years ago

Having moved to immutable record naming in WNS, we need to figure out how to support concepts like "the latest version of xxxx" and friendly names for entities such as bots in WNS.

ashwinphatak commented 4 years ago

Re: bot record:

RB: ok — so is this record the record for a bot factory INSTANCE or a bot artifact?
what happens if two people register the same bot? (currently one would overwrite the other)
lots of issues here that we need to resolve before we bake this (already v2)
(also, this doesn’t sound like an “access key”)
call it “topic”?
ashwinphatak commented 4 years ago

Naming/Versioning/Ownership Issues

Proposed Solution

# bot.yml
id: wrn:bot:wireline.io/shogibot
name:ShogiBot
version: 0.1.0
protocol:
  type: wrn:reference
  ref: wrn:protocol:wireline.io/chess#0.1.0
  # id: QmZBjSuaLhRuFVi7ti215678v26C1V4vWcrRaXmb7s65qi

Note: Use either ref OR id. If ref, version should be explicit (i.e. no semver or 'latest').

ashwinphatak commented 4 years ago

Artifacts vs Services

Compute services and bots.

CLI commands.

wire protocol register (currently: wire wns publish --filename="protocol.yml")
wire pad register
wire bot register

wire service register
wire service run
AFDudley commented 4 years ago

Prevent publishing of newer version if owners don't match latest version. Ensures a single dev/group/org is in control of the (type, name) combination.

This feels a bit like a kludge for "chess" being a first class name. I feel like people/orgs should be reserving names and then they are responsible for putting what they want under that name, i'm not sure i'm completely following along, so maybe I'm confused?

dboreham commented 4 years ago

@AFDudley that's the idea. This work focused specifically on versions, but there's another task to take care of hierarchical namespace with subtree authority/access control. It turns out they're the same thing pretty much.

ashwinphatak commented 4 years ago

Namespace/access control issue: https://github.com/wirelineio/wns/issues/32