Mirror of @tangled.org/core. Running on a Raspberry Pi Zero 2

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

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

anirudh.fi eb3d6334 e15ed001

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