forked from tangled.org/core
Monorepo for Tangled

appview/oauth: very temp fix for adding to default knot

Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>

anirudh.fi eb3d6334 e15ed001

verified
Changed files
+23 -18
appview
config
oauth
handler
+3
appview/config/config.go
··· 19 19 20 20 // temporarily, to add users to default knot and spindle 21 21 AppPassword string `env:"APP_PASSWORD"` 22 + 23 + // uhhhh this is because knot1 is under icy's did 24 + TmpAltAppPassword string `env:"ALT_APP_PASSWORD, required"` 22 25 } 23 26 24 27 type OAuthConfig struct {
+20 -18
appview/oauth/handler/handler.go
··· 354 354 } 355 355 356 356 var ( 357 - tangledHandle = "tangled.sh" 358 - tangledDid = "did:plc:wshs7t2adsemcrrd4snkeqli" 357 + tangledDid = "did:plc:wshs7t2adsemcrrd4snkeqli" 358 + icyDid = "did:plc:hwevmowznbiukdf6uk5dwrrq" 359 + 359 360 defaultSpindle = "spindle.tangled.sh" 360 361 defaultKnot = "knot1.tangled.sh" 361 362 ) ··· 379 380 } 380 381 381 382 log.Printf("adding %s to default spindle", did) 382 - session, err := o.createAppPasswordSession() 383 + session, err := o.createAppPasswordSession(o.config.Core.AppPassword, tangledDid) 383 384 if err != nil { 384 385 log.Printf("failed to create session: %s", err) 385 386 return ··· 392 393 CreatedAt: time.Now().Format(time.RFC3339), 393 394 } 394 395 395 - if err := session.putRecord(record); err != nil { 396 - log.Printf("failed to add member to default knot: %s", err) 396 + if err := session.putRecord(record, tangled.SpindleMemberNSID); err != nil { 397 + log.Printf("failed to add member to default spindle: %s", err) 397 398 return 398 399 } 399 400 ··· 416 417 } 417 418 418 419 log.Printf("adding %s to default knot", did) 419 - session, err := o.createAppPasswordSession() 420 + session, err := o.createAppPasswordSession(o.config.Core.TmpAltAppPassword, icyDid) 420 421 if err != nil { 421 422 log.Printf("failed to create session: %s", err) 422 423 return ··· 429 430 CreatedAt: time.Now().Format(time.RFC3339), 430 431 } 431 432 432 - if err := session.putRecord(record); err != nil { 433 + if err := session.putRecord(record, tangled.KnotMemberNSID); err != nil { 433 434 log.Printf("failed to add member to default knot: %s", err) 434 435 return 435 436 } ··· 441 442 type session struct { 442 443 AccessJwt string `json:"accessJwt"` 443 444 PdsEndpoint string 445 + Did string 444 446 } 445 447 446 - func (o *OAuthHandler) createAppPasswordSession() (*session, error) { 447 - appPassword := o.config.Core.AppPassword 448 + func (o *OAuthHandler) createAppPasswordSession(appPassword, did string) (*session, error) { 448 449 if appPassword == "" { 449 450 return nil, fmt.Errorf("no app password configured, skipping member addition") 450 451 } 451 452 452 - resolved, err := o.idResolver.ResolveIdent(context.Background(), tangledDid) 453 + resolved, err := o.idResolver.ResolveIdent(context.Background(), did) 453 454 if err != nil { 454 - return nil, fmt.Errorf("failed to resolve tangled.sh DID %s: %v", tangledDid, err) 455 + return nil, fmt.Errorf("failed to resolve tangled.sh DID %s: %v", did, err) 455 456 } 456 457 457 458 pdsEndpoint := resolved.PDSEndpoint() 458 459 if pdsEndpoint == "" { 459 - return nil, fmt.Errorf("no PDS endpoint found for tangled.sh DID %s", tangledDid) 460 + return nil, fmt.Errorf("no PDS endpoint found for tangled.sh DID %s", did) 460 461 } 461 462 462 463 sessionPayload := map[string]string{ 463 - "identifier": tangledHandle, 464 + "identifier": did, 464 465 "password": appPassword, 465 466 } 466 467 sessionBytes, err := json.Marshal(sessionPayload) ··· 492 493 } 493 494 494 495 session.PdsEndpoint = pdsEndpoint 496 + session.Did = did 495 497 496 498 return &session, nil 497 499 } 498 500 499 - func (s *session) putRecord(record any) error { 501 + func (s *session) putRecord(record any, collection string) error { 500 502 recordBytes, err := json.Marshal(record) 501 503 if err != nil { 502 504 return fmt.Errorf("failed to marshal knot member record: %w", err) 503 505 } 504 506 505 507 payload := map[string]any{ 506 - "repo": tangledDid, 507 - "collection": tangled.KnotMemberNSID, 508 + "repo": s.Did, 509 + "collection": collection, 508 510 "rkey": tid.TID(), 509 511 "record": json.RawMessage(recordBytes), 510 512 } ··· 526 528 client := &http.Client{Timeout: 30 * time.Second} 527 529 resp, err := client.Do(req) 528 530 if err != nil { 529 - return fmt.Errorf("failed to add user to default Knot: %w", err) 531 + return fmt.Errorf("failed to add user to default service: %w", err) 530 532 } 531 533 defer resp.Body.Close() 532 534 533 535 if resp.StatusCode != http.StatusOK { 534 - return fmt.Errorf("failed to add user to default Knot: HTTP %d", resp.StatusCode) 536 + return fmt.Errorf("failed to add user to default service: HTTP %d", resp.StatusCode) 535 537 } 536 538 537 539 return nil