Skip to content

Part 1 - Core refactor: unify tool/platform APIs and harden launch validation - #42

Closed
eliknebel wants to merge 9 commits into
masterfrom
v1-part1-core-refactor
Closed

eliknebel wants to merge 9 commits into
masterfrom
v1-part1-core-refactor

Conversation

@eliknebel

@eliknebel eliknebel commented Mar 13, 2026 •

Copy link
Copy Markdown
Contributor

This PR delivers the core refactor for the 1.0.0 release. It unifies the top-level Tool/Platform APIs, restructures
launch validation into explicit stage-based modules, and hardens core correctness around JWT, audience, timestamps,
deployment, registration, state, and nonce validation.

This is the foundation for the follow-on Tool Deep Linking, NRPS, and AGS PRs.

What Changed

  • Added unified top-level APIs:
    • Lti_1p3.Tool.login_redirect/2
    • Lti_1p3.Tool.validate_launch/3
    • Lti_1p3.Platform.authorize_redirect/5
  • Refactored core validation into explicit ordered validation modules:
    • state
    • registration
    • JWT
    • timestamps
    • deployment
    • nonce
    • message validation
  • Normalized launch/auth payloads into typed structs:
    • %Lti_1p3.Tool.Launch{}
    • %Lti_1p3.Platform.AuthorizationPayload{}
  • Hardened audience/JWT validation and standardized deterministic error reasons
  • Fixed message validator naming/path consistency
  • Aligned provider contracts and added provider contract conformance tests
  • Cleaned up in-memory provider implementation drift
  • Added core telemetry events and integration docs
  • Added migration, troubleshooting, and tool/platform integration guides

Why

The existing core had correctness gaps, uneven API ergonomics, and implementation drift between behavior contracts and
runtime code. The service-specific work in later PRs depends on having a stable, spec-correct core to build on.

Reviewer Notes

Focus review on:

  • public API shape changes
  • validation pipeline correctness
  • provider contract consistency
  • security-sensitive claim/JWT handling

Service-specific deep linking / NRPS / AGS behavior is intentionally deferred to later PRs in the stack.

Documentation

  • README.md
  • docs/core_tool_platform_guide.md
  • docs/core_migration_guide.md
  • docs/core_troubleshooting.md
  • docs/telemetry.md
  • CHANGELOG.md

@eliknebel eliknebel changed the title Core refactor: unify tool/platform APIs and harden launch validation Part 1 Core refactor: unify tool/platform APIs and harden launch validation Mar 13, 2026
@eliknebel eliknebel changed the title Part 1 Core refactor: unify tool/platform APIs and harden launch validation Part 1 - Core refactor: unify tool/platform APIs and harden launch validation Mar 13, 2026

@darrensiegel darrensiegel left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It would make sense instead to simply use the harness skills from https://github.com/Simon-Initiative/harness instead of creating and adding specific, new skills here. To do that, you just need to run the $harness-bootstrap skill to create all the necessary artifacts, and then have Codex take a crack at populating them from an informal prompt.

@eliknebel

Copy link
Copy Markdown
Contributor Author

It would make sense instead to simply use the harness skills from https://github.com/Simon-Initiative/harness instead of creating and adding specific, new skills here. To do that, you just need to run the $harness-bootstrap skill to create all the necessary artifacts, and then have Codex take a crack at populating them from an informal prompt.

Updated codebase and docs to use AI harness

@eliknebel
eliknebel requested a review from darrensiegel March 13, 2026 17:50
@eliknebel eliknebel closed this Mar 31, 2026
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.

2 participants