General information about the project is located in the README.md file.
When creating a new application with MSAL authentication, users need to select a tenant configuration:
- Workforce (default): For organizational identities
- Follow the instructions detailed under
.clinerules/01-Workforce-tenant-configuration.md
- Follow the instructions detailed under
- External: For customer/partner identities
- Follow the instructions detailed under
.clinerules/02-External-tenant-configuration.md
- Follow the instructions detailed under
| Aspect | Workforce Tenant | External Tenant |
|---|---|---|
| Target Users | Employees, internal users | Customers, partners, citizens |
| Registration | Admin-managed accounts | Self-service sign-up |
| User Flows | Standard authentication | Customizable sign-up/sign-in flows |
| Branding | Corporate branding | Fully customizable for customer UX |
| Identity Providers | Typically organizational only | Social providers supported |
| Tenant Configuration | Same, but different context | "Accounts in this organizational directory only" |
| Authority Endpoint | Uses tenant ID or common | Uses tenant subdomain |
| Use Cases | Enterprise apps, B2E scenarios | Consumer apps, B2C scenarios |
AI agents MUST build and run tests using the build/test configuration already set up in Xcode — i.e. the schemes defined in MSAL.xcworkspace, driven through build.py (e.g. ./build.py --targets iosFramework macFramework). Always use MSAL.xcworkspace, never open or build MSAL.xcodeproj directly, and do not invent ad-hoc xcodebuild invocations, schemes, or configurations that diverge from the ones configured in the workspace. If a build/test run needs a specific simulator, select an available one via the IOS_SIM_DEVICE / IOS_SIM_OS environment variables (consumed by build.py) rather than changing the scheme or configuration.
AI agents MUST NOT run git commit, git push, or any other history- or remote-mutating git command unless the user has explicitly asked for it in the current request. Make and stage changes, then stop and let the user review; wait for an explicit instruction before committing or pushing. Never commit or push proactively "to be helpful" — the user always reviews changes first.
Sample code snippets for both Swift & Objective-C can be found in the file .clinerules/03-MSAL-API-usage.md
Code style guidelines that AI agents MUST follow when working with this repository can be found in the file .clinerules/04-Code-style-guidelines.md
Feature flag guidance for AI agents when implementing new features for MSAL library are defined in the file .clinerules/05-Feature-gating.md
When interacting with users across any channel (GitHub issues, web chat, agent sessions), AI agents should follow these guidelines: .clinerules/06-Customer-communication-guidelines.md