objective categorical abstract machine language personal data server
65
fork

Configure Feed

Select the types of activity you want to include in your feed.

describeServer

futurGH ace4a45f f84bfcfe

+30 -4
+1 -1
bin/dune
··· 2 2 (public_name pegasus) 3 3 (name main) 4 4 (package pegasus) 5 - (libraries pegasus mist)) 5 + (libraries pegasus dream))
+6
bin/main.ml
··· 1 + let () = 2 + Dream.run ~interface:"0.0.0.0" ~port:8008 3 + @@ Dream.logger 4 + @@ Dream.router 5 + [ Dream.get "/xrpc/com.atproto.server.describeServer" 6 + Pegasus.Api.Server.DescribeServer.handler ]
+1
dune-project
··· 22 22 (caqti (>= 1.9.0)) 23 23 (caqti-driver-sqlite3 (>= 1.9.0)) 24 24 (caqti-lwt (>= 1.9.0)) 25 + (dream (>= 1.0.0~alpha5)) 25 26 (re (>= 1.13.2)) 26 27 (yojson (>= 3.0.0)) 27 28 (lwt_ppx (>= 5.9.1))
+1 -3
ipld/lib/dag_cbor.ml
··· 37 37 `Map 38 38 (StringMap.of_list 39 39 (List.map (fun (k, v) -> (k, of_yojson v)) assoc_list) ) 40 - | `List lst | `Tuple lst -> 40 + | `List lst -> 41 41 `Array (Array.of_list (List.map of_yojson lst)) 42 42 | `Bool b -> 43 43 `Boolean b ··· 49 49 `Float f 50 50 | `String s -> 51 51 `String s 52 - | `Variant (_, value) -> ( 53 - match value with Some v -> of_yojson v | None -> `Null ) 54 52 | `Null -> 55 53 `Null 56 54
+1
pegasus.opam
··· 14 14 "caqti" {>= "1.9.0"} 15 15 "caqti-driver-sqlite3" {>= "1.9.0"} 16 16 "caqti-lwt" {>= "1.9.0"} 17 + "dream" {>= "1.0.0~alpha5"} 17 18 "re" {>= "1.13.2"} 18 19 "yojson" {>= "3.0.0"} 19 20 "lwt_ppx" {>= "5.9.1"}
+13
pegasus/lib/api/server/describeServer.ml
··· 1 + let handler : Dream.handler = 2 + fun _ -> 3 + let env = Env.load () in 4 + Dream.json 5 + @@ Format.sprintf 6 + {|{ 7 + "did": "did:web:%s", 8 + "availableUserDomains": [".%s"], 9 + "inviteCodeRequired": %b, 10 + "links": {}, 11 + "contact": {} 12 + }|} 13 + env.hostname env.hostname env.invite_required
+1
pegasus/lib/dune
··· 4 4 caqti 5 5 caqti-lwt 6 6 caqti-driver-sqlite3 7 + dream 7 8 ipld 8 9 kleidos 9 10 lwt
+6
pegasus/lib/env.ml
··· 1 + type env = {hostname: string; invite_required: bool} 2 + 3 + let load () = 4 + let hostname = Sys.getenv "PDS_HOSTNAME" in 5 + let invite_required = Sys.getenv "INVITE_CODE_REQUIRED" = "true" in 6 + {hostname; invite_required}