Commit Graph

279 Commits

Author SHA1 Message Date
pkova
a1fd3a6792 lull, eyre: actually send events on clogged channel reconnect 2023-04-24 13:38:14 +03:00
Ted Blackman
6e793dfe39 Merge branch 'develop' into next/kelvin/413 2023-04-22 14:33:01 -04:00
fang
171142fd31
eyre: use jam mime type for PUT mode detection
Making this consistent with the mime type used for GET requests.
2023-04-12 19:19:13 +02:00
fang
d32527ba19
eyre: further refactor +load logic
Co-authored by: joemfb <joemfb@gmail.com>
2023-04-12 18:53:44 +02:00
fang
132299f278
eyre, mar: use x-urb-jam mime type for jams 2023-04-12 18:42:35 +02:00
pkova
fa40fd7f35 eyre: do not clear unacked events in +on-get-request 2023-04-12 19:36:26 +03:00
fang
4b68139c40
Merge branch 'next/kelvin/413' into x/json-bgon 2023-04-11 21:54:43 +02:00
lukechampine
e0ff3b4d5f eyre: add cache 2023-03-28 17:01:31 -04:00
fang
e11ac8a1c8 eyre: deduce channel mode from headers, not url 2023-03-16 14:32:02 -06:00
fang
10fe204c9e eyre: add support for noun-based channels
Adds a "mode" to channels, which can be set to either %json (current
behavior) or %jam. For %jam channels, aside from the SSE framing, all
communication happens through @uw-encoded jammed nouns. This applies to
both outgoing channel events, as well as incoming channel requests.

We choose @uw-style encoding because raw bytestreams are fragile and
cannot work inside the SSE stream context.

Currently, a separate endpoint (/~/channel-jam/etc) is used to indicate
%jam as the desired mode for a channel. We will probably want to make
this a bit cleaner, not least because it's not currently implemented as
a formal standalone endpoint, but also to give it stronger aesthetic
equivalence with the existing channel endpoint. Putting the mode in the
file extension is a tempting option here, but semantically not quite
right.

Connecting to the same channel across multiple modes is currently
supported, but it's untested, and unclear whether this is desirable or
not.
2023-03-16 14:31:45 -06:00
tadad
328a3d687d
Merge branch 'develop' into i/6303/eyre-verbose 2023-03-16 09:36:27 -06:00
pkova
d9c9b4150b lull, eyre: remove scry adapters for /~/name endpoint 2023-03-15 08:35:58 -04:00
tadad
a404982f75
Merge branch 'develop' into i/6303/eyre-verbose 2023-02-22 09:26:17 -06:00
pkova
76f32c6fad lull, eyre: add intermediate type for /~/name endpoint
The previous changes implementing the /~/name endpoint were breaking,
since we changed the type of `$action:eyre`. This commit keeps the /~/name
endpoint functional, but adds adapters to eyre scries that returns the old
`$action:eyre` type. These adapters and their associated intermediate types
can be removed the next time we burn a kelvin.
2023-02-21 20:48:56 +02:00
dachus
7c046d8812 +load fixed 2023-02-17 10:15:27 -06:00
tadad
dce0317327
Merge branch 'develop' into i/6303/eyre-verbose 2023-02-17 09:46:54 -06:00
Ted Blackman
61d32b5598
Merge pull request #5973 from urbit/m/http-auth-tokens
http: check requests for auth using tokens from eyre
2023-02-17 09:09:23 -05:00
dachus
5433d186aa requested changes fixed 2023-02-16 09:02:34 -06:00
dachus
099415c550 Merge branch 'i/6303/eyre-verbose' of https://github.com/uqbar-dao/urbit into i/6303/eyre-verbose
merge
2023-02-14 10:49:11 -06:00
tadad
470cdf0fef
Merge branch 'develop' into i/6303/eyre-verbose 2023-02-14 10:48:58 -06:00
dachus
c62549e0b3 message changed 2023-02-14 10:46:07 -06:00
pkova
49a24647da eyre: revert inclusion of HttpOnly header for now 2023-02-13 20:58:59 +02:00
fang
54680c33a8
eyre: clean up stray ~! 2023-02-13 15:12:24 +01:00
pkova
0202ff069c eyre: fix indentation 2023-02-13 14:27:34 +02:00
pkova
bb73dc9975 eyre: replace hardcoded duct in +load with equivalent outgoing-duct 2023-02-13 14:27:23 +02:00
pkova
712bcba2b2 eyre: hardcode %init task duct in +load 2023-02-13 14:27:12 +02:00
pkova
e3d19f9e8d eyre: refactor +load to be prettier 2023-02-13 14:27:12 +02:00
pkova
9291fed27f eyre: revert +error-response refactor 2023-02-13 14:27:12 +02:00
pkova
d8ff95db84 eyre: add /~/name endpoint 2023-02-13 14:26:54 +02:00
tadad
cbc178ee76
Merge branch 'develop' into i/6303/eyre-verbose 2023-02-09 14:08:16 -06:00
dachus
50d35ad89a cleaning 2023-02-09 15:06:06 -05:00
dachus
b5b11b0bf1 cleaning 2023-02-09 14:56:50 -05:00
dachus
785fa057bd cleaning code 2023-02-09 14:51:34 -05:00
dachus
d8ca915c22 cleaning up message rankings 2023-02-09 14:22:50 -05:00
dachus
9aadada6fc discard-channel traces fixed 2023-02-09 14:11:35 -05:00
dachus
d52df27ca0 channel discarding messages added 2023-02-09 13:58:24 -05:00
dachus
7e4a55b304 error connections tuned 2023-02-09 13:06:02 -05:00
dachus
b6c1ed2240 load changed 2023-02-09 12:55:47 -05:00
dachus
50c0fc39ae changed messages 2023-02-09 12:55:08 -05:00
dachus
738b1a562c style fixes 2023-02-08 17:03:02 -05:00
dachus
abdff98864 traces added for connections 2023-02-08 16:54:36 -05:00
dachus
c59813e367 gall watch/leave traces added 2023-02-08 16:19:13 -05:00
dachus
09017729bc eyre %spew added to toggle verbosity 2023-02-08 15:20:07 -05:00
dachus
c271ade941 veb to verb 2023-02-08 15:19:14 -05:00
dachus
aedb261b7e +load properly migrates state 2023-02-08 15:10:16 -05:00
dachus
46a9556f4b +insert-binding reverted 2023-02-08 14:47:54 -05:00
dachus
318e001c28 trace removed from main core 2023-02-08 14:46:05 -05:00
dachus
e00e959100 trace moved into +per-server-event 2023-02-08 14:43:13 -05:00
dachus
69f7fc40c3 slog calls replaced with trace 2023-02-08 14:15:55 -05:00
dachus
c377008f62 fixed kick messages 2023-02-08 13:47:43 -05:00
dachus
54d655aeda all ~& replaced with trace calls 2023-02-08 13:44:09 -05:00
dachus
a03be0e6f9 verb added 2023-02-08 12:43:03 -05:00
fang
92066f3a33
Merge branch 'develop' into m/http-auth-tokens 2023-02-06 19:44:01 +01:00
fang
faa16a1811
eyre: provide proper secure flag in %host scry 2023-01-27 14:37:56 +01:00
fang
db3fcdf4d5
Merge branch 'next/arvo' into fix-host-scry 2023-01-05 13:35:22 +01:00
Tinnus Napbus
3f60cd9f90 eyre: fix %host scry so it still says secure if localhost 2022-12-01 14:17:23 +13:00
Philip Monk
fc70193ef6 Merge remote-tracking branch 'origin/next/arvo' into philip/agent-clay 2022-10-13 20:54:00 -07:00
Philip Monk
de76b70286 Merge remote-tracking branch 'origin/tinnus/eyre-https-redirect' into philip/agent-clay 2022-10-13 20:52:10 -07:00
Tinnus Napbus
cd6432aa86 Merge remote-tracking branch 'origin/tinnus/eyre-https-redirect' into tinnus/eyre-https-redirect 2022-10-01 22:35:24 +13:00
Tinnus Napbus
0fad85b3d0 eyre: change (cury cat 3) to rap in https redirect 2022-10-01 22:31:59 +13:00
tinnus-napbus
e481aded3c
Update pkg/arvo/sys/vane/eyre.hoon
Co-authored-by: fang <git@fang.io>
2022-09-29 13:32:32 +13:00
tinnus-napbus
66f543289d
Update pkg/arvo/sys/vane/eyre.hoon
Co-authored-by: fang <git@fang.io>
2022-09-29 13:32:18 +13:00
tinnus-napbus
387b48bed6
Update pkg/arvo/sys/vane/eyre.hoon
Co-authored-by: fang <git@fang.io>
2022-09-29 13:32:07 +13:00
tinnus-napbus
c0e2974678
Update pkg/arvo/sys/vane/eyre.hoon
Co-authored-by: fang <git@fang.io>
2022-09-29 13:31:47 +13:00
Tinnus Napbus
ac1dac0c6c eyre: simplify auto-https logic 2022-09-24 21:52:34 +12:00
Tinnus Napbus
27349c51ab eyre: add auto-https redirects
if a cert is configured and a secure port is live it will set the
redirect flag in http-config.state.

When it gets a ++request it will return a 301 redirect to
https://[host]/[path] if:

  1. not already secure
  2. redirect flag set
  3. secure port live
  4. is not requesting /.well-known/acme-challenge/...
  5. the host is in domains.state

It will not happen if forwarded-secured, localhost, local loopback, ip
addresses or domains not in domains.state.

in ++load it checks the secure port is live and a cert is set and
enables it if so (for people who already use in-urbit letencrypt)

%rule %cert tasks also toggle it (only turning it on if secure port
live)

%live tasks also toggle it (only turning it on if cert set)

Have tested with a couple of ships and seems to work fine.

This is useful in combination with pyry's auto arvo.network dns config
system - can finally get rid of reverse proxies entirely.
2022-09-04 02:58:09 +12:00
fang
53cc33b291
eyre: look for lowercase last-event-id header
Eyre always gets passed request headers in lowercase, so we should search for
the lowercased version of the header.

Arguably `+get-header` should lowercase keys before comparing them, but that's
a more serious behavioral change.
2022-08-30 16:44:11 +02:00
fang
9c3c2b13c7
eyre: send valid auth tokens to the runtime
Whenever a session gets created or removed, send the set of valid auth
tokens to the runtime, so that it may use them in determining whether
incoming requests are authenticated or not.
2022-08-24 00:34:08 +02:00
bacwyls
49b837f5e8
eyre: fix for %trim bug - addendum
Broader, more direct solution.
2022-07-08 17:10:41 -07:00
bacwyls
c8fafa53bd
eyre: fix for %trim bug
Problem:
by-channel has its own copy of server-state from line 2182. discard-channel returns an altered state, with one channel removed from the state of by-channel.
but the state of by-channel isn't changing with each iteration, so |trim is only removing one channel per invocation.

Solution:
update by-channel on each iteration.
2022-07-08 15:14:13 -07:00
fang
e9a0c8543e
Merge pull request #5811 from ynx0/patch-1
eyre: Modify landing title from "OS1" to "Urbit"
2022-05-31 16:56:15 +02:00
Yaseen
c94fea25da
eyre: Modify landing title from "OS1" to "Urbit" 2022-05-29 16:22:20 -04:00
Liam Fitzgerald
82e8d35a2a eyre: address mark review, update pill 2021-12-02 09:06:55 -05:00
Liam Fitzgerald
6160a77eaa eyre: include mark of fact in channel json
This change greatly improves the ergonomics of working with channel JSON
in statically typed languages, as the polymorphism is moved out of the
actual diff and into the event framing.
2021-12-01 17:48:57 -05:00
Fang
4ed2a5914b
eyre: bind most specific endpoint first
This sticks to the old behavior, which was briefly lost in recent
changes.
2021-09-25 17:44:31 +04:00
Fang
369a6b7a47
eyre: allow overwriting existing bindings
Previously, if trying to bind to an endpoint that was already bound to,
eyre would reject it. This doesn't play very nicely in a softdist world
where uninstalled apps might not get a chance to clean up, and apps
might re-bind simply for being re-installed.

Here we change eyre to overwrite an existing binding if it conflicts
with the new one to be added.
2021-09-25 00:54:24 +04:00
Ted Blackman
616ab66f26 merge master; loosen :hood's updates 2021-08-11 19:23:36 +03:00
Liam Fitzgerald
6ca0fd11c4
eyre: send comments as heartbeats, not empty events
The previous behaviour, in addition to not being conformant with the
spec, breaks correct reconnect behaviour.
See: https://html.spec.whatwg.org/multipage/server-sent-events.html#event-stream-interpretation
2021-06-30 11:45:50 +10:00
Logan Allen
d5ec02c801 eyre: cast within zapgar to avoid nest check 2021-06-28 17:07:13 -04:00
Liam Fitzgerald
f2583ce080
eyre: address mark review 2021-06-25 08:28:06 +10:00
Liam Fitzgerald
9aaa44ff33
eyre: replace channel upon new GET request
As SSE are unidirectional, the client always realises that the
connection has failed faster than the server does. Hence, resuming a
subscription is useless, because channels can only be bound to one duct
at a time. Now, instead of failing a request for a channel
that is already bound to a duct, we replace the duct and continue
normally.
2021-06-24 13:54:53 +10:00
Philip Monk
87ca57c364
gall: allow apps to run from any desk
Start with |start %desk %app-name

Everywhere in the kernel that we deal with marks, we infer the app it's
connected to and use the marks from that desk.

Also some light renaming in gall, especially path->wire and
current-agent->yoke.

Subsequent tasks:

- Dojo needs a syntax to run generators and threads from other desks
- The home desk should be split into at least a minimal base desk and
  big "userspace" desk.  Dill's initialization logic should be updated
  to handle
- |show-package, |install, and |uninstall should to be written
- Clay should have smarter handling of system versions instead of just
  ignoring what's on each desk.  It's not clear that this will work
  correctly when sys updates right now.
2021-06-18 16:13:55 -10:00
Logan Allen
1296728d4f eyre: cast within zapgar to avoid nest check 2021-06-14 16:18:18 -05:00
Logan Allen
2549eaa5c2 eyre: comment out %writ specialization because it causes crashes 2021-05-27 13:28:23 -05:00
Logan Allen
3427e57cb3 eyre: specialize %clay type 2021-05-27 13:01:06 -05:00
Logan Allen
23f9668d46 eyre: make fang's requested style changes 2021-05-26 12:22:54 -05:00
Logan Allen
571e1df2c6 eyre: add ~| to slym 2021-05-20 15:05:36 -05:00
Logan Allen
be7c94fcba eyre: replace +slam with +slym for a speedup 2021-05-20 14:31:28 -05:00
L
782a7644a3
Update pkg/arvo/sys/vane/eyre.hoon
Co-authored-by: fang <github@fang.io>
2021-05-20 13:40:05 -05:00
L
c0daa7f9fc
Update pkg/arvo/sys/vane/eyre.hoon
Co-authored-by: fang <github@fang.io>
2021-05-20 13:39:49 -05:00
Logan Allen
5e2eb1b783 eyre: use slam and statically typed conversion 2021-05-20 18:03:04 +00:00
Logan Allen
306dbbaead eyre: use static mark conversions 2021-05-20 12:11:45 -05:00
Logan Allen
c0e4dcdc18 eyre: no-op on clay take 2021-05-19 16:01:05 -05:00
Logan Allen
054806b307 eyre: send warp to warm %c cache for any mark that gets used 2021-05-19 15:40:32 -05:00
fang
6f0a947d1b
Merge branch 'master' into release/next-sys 2021-04-26 23:13:27 +02:00
Philip Monk
66b4c3f193
Merge pull request #4677 from urbit/philip/fast-refresh
sys: Speed up things used in Landscape
2021-04-19 15:43:16 -07:00
Logan Allen
5d16911f69 eyre: use font-display:swap; in login page 2021-04-09 16:02:55 +00:00
fang
1ec5e5acfb
hoon: add +stap, path parser
And cleans up a bunch of locally hand-written implementations of it.
2021-04-07 21:14:13 +02:00
Philip Monk
a777567bb6
eyre: faster wain-to-octs conversion
Avoid allocating hundreds of thousands of cells when giving large
requests.  This took the footprint of this function on initial landscape
load from 1 second to 100 ms.
2021-03-28 00:57:33 -07:00
Philip Monk
a1647a9767
clay, eyre: add profiling hints 2021-03-28 00:50:25 -07:00