- Client APIs remain behind the session middleware
- Non-client APIs no longer set cookies given their stateless nature
- Simplifies the directory structure
- Removes Microsoft-specific API configuration and code not useful to the OSS version
Integrates multiple changes from an internal fork to the open project:
- Strongly typing basic organization properties and flags
- Specialized app purposes
- Organization annotations
- Repo unarchive
- Configuration resolver supports dates
- Configuration resolver supporting above-root .env over env vars for Codespaces
- Initialization routine adds support for an optional company-specific secondary stage
- Supports flighting a second React frontend for specific or all users
- Most basic organization APIs support managed and unmanaged orgs for org details
Updates the open source project to reflect the recent updates
around continuing to make it easier to build in paralell and have
company-specific updates without impacting the upstream as much.
This is a batch of updates, including package version improvements.
- Axios: the library has gone through some growing pains for TypeScript
users. While the library no longer returns "unknown" for response types,
designed to encourage safe known casting, we do a lot of "cast as any" now,
and will improve in the future.
- Additional company-specific extension points around authentication
- Additional auth token types for just-in-time
- Cleanup of Passport routing. This could be breaking for anyone who has
taken the time to hack other Passport providers on top, so interested to
learn if anyone has (for example, the old Google integration as an auth provider
over AAD)
- Removes antiquated Azure Storage and table SDKs
- Removes dependency on painless-config-resolver (which is now inline inside the project and adopts the latest Azure SDK for KeyVault)
- Adds company-specific unlink and link mail template overrides
- Adds new unlink notification mail to people who remove themselves, or are removed
- Updates more legacy functions from callbacks to more modern equivalents
- Removes unused reports "data lake" storage methods
- Removes moment timezone library
- System administrator data can now alternatively come from security groups instead of hard-coded configuration
Breaking changes
- Removes painless-config support. .env and environment/container env methods only. If you have a JSON env file, update it to a .env-compatible format for local development use.
Removing explicit casts from req.app.settings.providers and using
a function.
Switching from Mocha (which was mostly unused) to Jest.
Moving around type definitions and interfaces in a big way to try
and cleanup some legacy.
For improved type safety, this uses a function to return the
IProviders instance from the Express app, replacing all instances
of using req.app.settings.providers as IProviders, etc.
This may also make everything slightly more testable, eventually.
This significant pull request patches the open source project with a number
of updates from inside Microsoft as part of connecting an automated publishing
process to keep the public version up-to-date and buildable.
We are also removing Microsoft-specific endpoints and APIs when easy enough to
do, and adding a "company-specific" extension model to try as we go about this.
- remove 'use strict' from TS files (implicit)
- converting more exports to modern export defaults
- connecting to support for corporate "profile" apps to remove
corp-specific work
- fixes a small bug in the cache provider for Cosmos
- Enables GitHub App-based server-to-server communication
- Enables dynamic (database-backed) organization setting configuration
- QueryCache system, when paired with a Postgres database and GitHub App webhooks keeps teams, repo lists, etc. up-to-date more efficiently than the older GitHub REST API-based method
- Various bug fixes
Major updates to the application, including some minor breaking changes.
The public updates (that make it less Microsoft-specific) are still in
development; this represents trying to get it ready for updates.