Skip to content

Inferno SMART App Launch conformance testing (deferred) #22

Description

@cursor

Summary

Defer Inferno SMART App Launch conformance testing to a dedicated follow-up. HAIStack will continue to provide library-level SMART/auth support (pkg/smart, pkg/auth, pkg/http hooks); Inferno CI and a reference OAuth host are out of scope until hosts have a clearer SMART deployment story.

Background

Issue #8 Phase 5 proposed optional Inferno SMART App Launch tests against a reference pkg/http deployment. An initial implementation added:

  • cmd/inferno-reference + pkg/smart/host (stub OAuth + well-known)
  • pkg/testkit/infernotest (discovery-aligned Go tests)
  • .github/workflows/inferno.yml

That work was removed to avoid maintaining stub OAuth endpoints and partial conformance claims before the primary authorization test kit (#8 / pkg/testkit/authztest) lands on main.

Proposed scope (when picked up)

Phase 1 — Discovery

  • Reference host contract: FHIR base + /.well-known/smart-configuration (host-owned, not necessarily in-tree stub OAuth)
  • Inferno smart_discovery_stu2 group (well-known endpoint + required capabilities)
  • CI job (optional / workflow_dispatch) against a deployed or dockerized test stack

Phase 2 — Launch workflows

  • Standalone launch (STU1/STU2) via Inferno test kit or scripted execution
  • EHR launch (may require mock EHR or Inferno reference server pairing)
  • Backend services authorization group (system/*.read + client assertion)

Phase 3 — Integration with HAIStack

  • Document how hosts wire PrincipalResolver + AuthChecker for Inferno-tested deployments
  • Link to pkg/testkit/authztest semantic scenarios (policy deny overrides scope)

Out of scope

  • Building a production OAuth2/OIDC authorization server in HAIStack
  • Replacing pkg/testkit/authztest with Inferno (complementary: semantic authz vs ecosystem conformance)

Related

References

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions