[WIP] [CIAM Cred Mgmt] Release branch - #3011
Conversation
## PR Checklist (must be completed before review) - [ ] All tests pass locally - [ ] PR size is <= 500 LOC per PR Size Check policy - [ ] PR is independently mergeable (no hidden dependencies) - [ ] Appropriate reviewers are assigned - [ ] PR reviewed by code owner (required if Copilot-generated) - [ ] SME or Senior IC assigned where required ## PR Title Format **Required Format:** `[Keyword1] [Keyword2]: Description` - **Keyword1:** `major`, `minor`, or `patch` (case-insensitive) - **Keyword2:** `feature`, `bugfix`, `engg`, or `tests` (case-insensitive) **Examples:** - `[MAJOR] [Feature]: new API` - `[minor] [bugfix]: fix crash` - `[PATCH] [tests]: add coverage` ## Proposed changes Create the empty MSALNativeCredManagment framework target with MSAL SDK configured as a Swift Package Manager dependency. Work item: https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3654778 ## Type of change - [ ] Feature work - [ ] Bug fix - [ ] Documentation - [ ] Engineering change - [ ] Test - [ ] Logging/Telemetry ## Risk - [ ] High – Errors could cause MAJOR regression of many scenarios. (Example: new large features or high level infrastructure changes) - [ ] Medium – Errors could cause regression of 1 or more scenarios. (Example: somewhat complex bug fixes, small new features) - [ ] Small – No issues are expected. (Example: Very small bug fixes, string changes, or configuration settings changes) ## Additional information
| @@ -0,0 +1,3 @@ | |||
| ## [0.1.0] | |||
There was a problem hiding this comment.
This pull request does not update CHANGELOG.md.
Please consider if this change would be noticeable to a partner or user and either update CHANGELOG.md or resolve this conversation.
There was a problem hiding this comment.
Pull request overview
This PR introduces initial scaffolding for a new “MSAL Native Credential Management” Swift framework under lib/native/, intended to support CIAM / External ID credential-management scenarios and to be consumable via Swift Package Manager and an Xcode project.
Changes:
- Adds a new SwiftPM package (
lib/native/MSALNativeCredManagment/Package.swift) and initial source/test stubs. - Adds an Xcode project + shared scheme for the new framework target.
- Adds initial docs artifacts (README, CHANGELOG, DocC stub) and a private module map for bridging IdentityCore headers.
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| lib/native/MSALNativeCredManagment/README.md | Adds introductory documentation and setup guidance for the new framework. |
| lib/native/MSALNativeCredManagment/Package.swift | Defines a new SwiftPM package and depends on the repo’s MSAL SwiftPM package. |
| lib/native/MSALNativeCredManagment/MSALNativeCredManagmentTests/MSALNativeCredManagmentTests.swift | Adds an initial test asserting the SDK version constant. |
| lib/native/MSALNativeCredManagment/MSALNativeCredManagment/src/MSALNativeCredManagment.swift | Adds the initial public Swift entry point and version constant. |
| lib/native/MSALNativeCredManagment/MSALNativeCredManagment/MSALNativeCredManagment.h | Adds the umbrella header for the framework target. |
| lib/native/MSALNativeCredManagment/MSALNativeCredManagment/MSALNativeCredManagment.docc/MSALNativeCredManagment.md | Adds a DocC landing page stub. |
| lib/native/MSALNativeCredManagment/MSALNativeCredManagment.xcodeproj/xcshareddata/xcschemes/MSALNativeCredManagment.xcscheme | Adds a shared scheme for building/testing the new targets. |
| lib/native/MSALNativeCredManagment/MSALNativeCredManagment.xcodeproj/project.xcworkspace/contents.xcworkspacedata | Adds workspace metadata for the new Xcode project. |
| lib/native/MSALNativeCredManagment/MSALNativeCredManagment.xcodeproj/project.pbxproj | Adds the Xcode project defining the framework + test targets and MSAL package dependency. |
| lib/native/MSALNativeCredManagment/Info.plist | Adds a framework Info.plist for versioning/metadata. |
| lib/native/MSALNativeCredManagment/CMSAL_Private/include/module.modulemap | Adds a custom module map intended to expose IdentityCore headers to Swift. |
| lib/native/MSALNativeCredManagment/CHANGELOG.md | Adds initial changelog entries for the new framework. |
Files not reviewed (1)
- lib/native/MSALNativeCredManagment/MSALNativeCredManagment.xcodeproj/project.xcworkspace/contents.xcworkspacedata: Language not supported
| .target( | ||
| name: "MSALNativeCredManagment", | ||
| dependencies: [ | ||
| .product(name: "MSAL", package: "microsoft-authentication-library-for-objc") |
| swiftSettings: [ | ||
| .unsafeFlags( | ||
| ["-Xcc", "-fmodule-map-file=\(packageDir)/CMSAL_Private/include/module.modulemap"] | ||
| + allHeaderDirs.flatMap { ["-Xcc", "-I\($0)"] } | ||
| ) | ||
| ] |
| import Testing | ||
| @testable import MSALNativeCredManagment | ||
|
|
||
| struct MSALNativeCredManagmentTests | ||
| { | ||
| @Test func sdkVersionIsSet() async throws | ||
| { | ||
| #expect(MSALNativeCredManagmentSDK.version == "0.1.0") | ||
| } |
| import Foundation | ||
| import MSAL | ||
| @_implementationOnly import MSAL_Private |
| public enum MSALNativeCredManagmentSDK | ||
| { | ||
| /// The current version of the MSALNativeCredManagment SDK. | ||
| public static let version = "0.1.0" |
| ### As part of the MSAL workspace | ||
|
|
||
| Open `MSAL.xcworkspace` and include the `MSALNativeCredManagment` target. | ||
|
|
|
|
||
| ## Contributing | ||
|
|
||
| This SDK is developed as part of the MSAL for iOS/macOS project. Please refer to the [main repository contribution guidelines](https://github.com/AzureAD/microsoft-authentication-library-for-objc/blob/dev/contributing.md). |
| ## [0.1.0] | ||
| * Initial implementation of MSAL Native Credential Management SDK. | ||
| * Add credential method support for CIAM scenarios. |
| # ``MSALNativeCredManagment`` | ||
|
|
||
| <!--@START_MENU_TOKEN@-->Summary<!--@END_MENU_TOKEN@--> | ||
|
|
||
| ## Overview | ||
|
|
||
| <!--@START_MENU_TOKEN@-->Text<!--@END_MENU_TOKEN@--> | ||
|
|
||
| ## Topics | ||
|
|
||
| ### <!--@START_MENU_TOKEN@-->Group<!--@END_MENU_TOKEN@--> | ||
|
|
||
| - <!--@START_MENU_TOKEN@-->``Symbol``<!--@END_MENU_TOKEN@--> No newline at end of file |
| module MSAL_Private { | ||
| header "../../../../../MSAL/IdentityCore/IdentityCore/src/MSIDBasicContext.h" | ||
| header "../../../../../MSAL/IdentityCore/IdentityCore/src/logger/MSIDLogger.h" | ||
| header "../../../../../MSAL/IdentityCore/IdentityCore/src/logger/MSIDLogger+Internal.h" | ||
| header "../../../../../MSAL/IdentityCore/IdentityCore/src/logger/MSIDMaskedHashableLogParameter.h" | ||
| header "../../../../../MSAL/IdentityCore/IdentityCore/src/logger/MSIDMaskedLogParameter.h" | ||
| header "../../../../../MSAL/IdentityCore/IdentityCore/src/logger/MSIDMaskedUsernameLogParameter.h" | ||
| header "../../../../../MSAL/IdentityCore/IdentityCore/src/MSIDError.h" | ||
| header "../../../../../MSAL/IdentityCore/IdentityCore/src/oauth2/MSIDExternalSSOContext.h" | ||
| header "../../../../../MSAL/IdentityCore/IdentityCore/src/parameters/MSIDRequestParameters.h" | ||
| export * |
|
|
||
| /* Begin PBXFileSystemSynchronizedRootGroup section */ | ||
| A1000030 /* MSALNativeCredManagment */ = { | ||
| isa = PBXFileSystemSynchronizedRootGroup; |
There was a problem hiding this comment.
This project format and PBXFileSystemSynchronizedRootGroup require Xcode 16, while the README still supports Xcode 15+. Xcode 15 cannot open this project. Please use an Xcode 15-compatible format or update the documented minimum requirement.
PR Checklist (must be completed before review)
PR Title Format
Required Format:
[Keyword1] [Keyword2]: Descriptionmajor,minor, orpatch(case-insensitive)feature,bugfix,engg, ortests(case-insensitive)Examples:
[MAJOR] [Feature]: new API[minor] [bugfix]: fix crash[PATCH] [tests]: add coverageProposed changes
Create the empty MSALNativeCredManagment framework target with MSAL SDK configured as a Swift Package Manager dependency.
Work item:
https://identitydivision.visualstudio.com/Engineering/_workitems/edit/3654778
Type of change
Risk
Additional information
PR Checklist (must be completed before review)
PR Title Format
Required Format:
[Keyword1] [Keyword2]: Descriptionmajor,minor, orpatch(case-insensitive)feature,bugfix,engg, ortests(case-insensitive)Examples:
[MAJOR] [Feature]: new API[minor] [bugfix]: fix crash[PATCH] [tests]: add coverageProposed changes
Describe what this PR is trying to do.
Type of change
Risk
Additional information