Skip to content

Organize login providers into dedicated packages #261

@briangann

Description

@briangann

Summary

Move each login provider into its own package under pkg/kiosk/login/ to isolate them and provide a clear template for adding new providers.

Motivation

With the browser.Browser interface in place (#257), login providers now have clean dependency boundaries:

  • Each depends on browser.Browser (interface)
  • Each depends on shared config types
  • No provider depends on another

This makes a package-per-provider layout natural and useful.

Proposed Structure

pkg/kiosk/login/
  anonymous/
    anonymous.go
    anonymous_test.go
  local/
    local.go
    local_test.go
  gcom/
    gcom.go
  goauth/
    goauth.go
  idtoken/
    idtoken.go
  apikey/
    apikey.go
  aws/
    aws.go
  azuread/
    azuread.go

Shared utilities (GenerateURL, generateExecutorOptions, cycleWindowState, etc.) stay in pkg/kiosk/.

Benefits

  • Each provider is isolated and testable independently
  • New providers can be created by duplicating an existing directory as a template
  • Clear ownership boundaries per login method
  • Easier to review and maintain individual providers

Context

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions