Problem Statement
IdLE must support BYOD scenarios where personal devices are enrolled in Microsoft Intune. For safe policies and human-in-the-loop procedures, workflows/hosts need a reliable way to discover device inventory for an identity.
Today IdLE lacks:
- an Intune provider implementation
- a read-only capability to list devices for an identity
- a normalized, safe, serializable schema for device inventory stored in
Request.Context
Without a standardized read-only device inventory capability, BYOD-related orchestration is host-specific, hard to test, and hard to audit.
Proposed Solution
1) Introduce Intune provider module (read-only)
Create provider module:
- Module:
IdLE.Provider.Intune
Implement capability (v1):
IdLE.Device.List (read-only)
- Input: identity keys from request (UPN and/or Entra object id, as available)
- Output: list of Intune managed devices associated with that identity
The provider MUST remain read-only in this issue (no destructive actions).
2) Define canonical device context snapshot location + schema
Define where and how device inventory is stored:
- Location:
Request.Context.Devices.Intune.ManagedDevices[]
Define and document the normalized schema. Requirements:
- Safe to store in plan artifacts and logs (no secrets, no tokens, no session data)
- Serializable and stable
- Includes enough non-sensitive metadata to help operators identify devices (human-friendly)
- Size-bounded (avoid unbounded payloads)
Example fields (illustrative; finalize in this issue):
Id (provider device id)
DisplayName
Platform (Android/iOS/Windows/macOS)
Model (if available)
SerialNumber (if considered acceptable; otherwise omit)
LastCheckIn (if available)
ComplianceState / ManagementState (if safe and available)
3) Testing strategy
- Unit tests: mock Intune provider responses; validate normalized output and schema constraints.
- Provider contract tests: define expected behavior for
IdLE.Device.List (inputs, outputs, error behavior).
Alternatives Considered
- Host-only device inventory
- Reduces portability and consistency; duplicates logic across hosts.
- Store raw provider objects in context
- Unsafe (non-serializable, potentially sensitive), not stable for plan export.
Impact
- Adds a new provider module and documentation footprint.
- Enables consistent BYOD device discovery and audit-friendly device context.
Dependencies
- Requires the request schema split:
Request.Intent / Request.Context.
- Requires plan snapshot/export rules that safely include
Request.Context.
Definition of Done (Step-0-Ready / Agent-Safe)
Design / Contracts
Implementation
Tests (Pester)
Docs / Examples
Non-Goals (explicit)
- No device retire/wipe actions in this issue.
- No interactive UI behavior in IdLE.
Problem Statement
IdLE must support BYOD scenarios where personal devices are enrolled in Microsoft Intune. For safe policies and human-in-the-loop procedures, workflows/hosts need a reliable way to discover device inventory for an identity.
Today IdLE lacks:
Request.ContextWithout a standardized read-only device inventory capability, BYOD-related orchestration is host-specific, hard to test, and hard to audit.
Proposed Solution
1) Introduce Intune provider module (read-only)
Create provider module:
IdLE.Provider.IntuneImplement capability (v1):
IdLE.Device.List(read-only)The provider MUST remain read-only in this issue (no destructive actions).
2) Define canonical device context snapshot location + schema
Define where and how device inventory is stored:
Request.Context.Devices.Intune.ManagedDevices[]Define and document the normalized schema. Requirements:
Example fields (illustrative; finalize in this issue):
Id(provider device id)DisplayNamePlatform(Android/iOS/Windows/macOS)Model(if available)SerialNumber(if considered acceptable; otherwise omit)LastCheckIn(if available)ComplianceState/ManagementState(if safe and available)3) Testing strategy
IdLE.Device.List(inputs, outputs, error behavior).Alternatives Considered
Impact
Dependencies
Request.Intent/Request.Context.Request.Context.Definition of Done (Step-0-Ready / Agent-Safe)
Design / Contracts
IdLE.Device.List(inputs, output shape, error behavior).Request.Context.Devices.Intune.ManagedDevices[]Implementation
IdLE.Provider.Intunewith capabilityIdLE.Device.List.Request.Contextand included in plan snapshots.Tests (Pester)
IdLE.Device.Listreturns normalized device list.Docs / Examples
IdLE.Provider.Intune(read-only):Request.ContextNon-Goals (explicit)