Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@lukechampine
Copy link
Contributor

Huge thanks to @philipcmonk for explaining in detail how to accomplish this.

Previously, |link couldn't be used across ships, because Drum always subscribes on /sole/drum, regardless of what ship it's talking to. This PR changes Drum to subscribe on /sole/drum_SHIPNAME, so that updates can be routed to the appropriate ship.

This means that you can run |link ~zod %dojo, hit Ctrl-X, and be dropped into zod's Dojo prompt! This could be used for e.g. administrating one ship from another; to allow a developer to debug your ship in-situ, etc.

Of course, for security reasons, apps generally reject pokes from other ships. So I also added access controls to Dojo: in addition to checking the peer against team:title, it will look for the ship in an access control list. So it's basically ssh for Urbit, leveraging the built-in identity system instead of needing to copy public keys around. :)

Copy link
Collaborator

@philipcmonk philipcmonk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks pretty good, just a couple small changes.

philipcmonk added a commit that referenced this pull request May 8, 2020
philipcmonk added a commit that referenced this pull request May 8, 2020
This will fix the issue described in #2867 for ducts that have already
triggered the bug.  This will also send spurious acks for any messages
that are outstanding at the time of the upgrade, but I don't believe
this will cause a serious problem.
Copy link
Collaborator

@philipcmonk philipcmonk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, thanks!

@philipcmonk philipcmonk changed the base branch from master to release/link-dojo May 8, 2020 20:36
@philipcmonk philipcmonk merged commit 6178ae8 into urbit:release/link-dojo May 8, 2020
@lukechampine lukechampine deleted the per-ship-drum branch May 8, 2020 23:28
philipcmonk added a commit that referenced this pull request May 22, 2020
* origin/release/link-dojo:
  chat-cli: allow sending • character
  chat-cli: always talk to local ship only
  chat-cli: single-target sole effects as needed
  chat-cli: don't allow excessively small cli widths
  chat-cli: pull in sole-sur namespace where relevant
  chat-cli: remove unused entropy from state
  chat-cli: print newlines correctly
  chat-cli: support multiple sole connections
  chat-cli: don't crash on %bad-text
  dojo: rename remote access generators
  gall: fix handling of empty path list
  dojo: remove unused %json poke
  dojo: add remote access controls
  drum: switch to per-ship /sole/drum duct

Signed-off-by: Philip Monk <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants