Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
a059397
fix: update duration validation message for snooze alert
kris6673 Apr 13, 2026
e964a41
fix: Update duration validation message for snooze alert (#1993)
KelvinTegelaar Apr 15, 2026
06dd279
allow null
KelvinTegelaar Apr 15, 2026
e7e110c
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Apr 15, 2026
0243355
add expected
KelvinTegelaar Apr 15, 2026
a1c72de
add expected and currentValue Caldefaults
KelvinTegelaar Apr 15, 2026
3bbfe44
Feat: CIPPCore breakout and performance tuning
Zacgoose Apr 5, 2026
ceae1ce
CIPPCore breakout into smaller modules, supporting cache and helper s…
KelvinTegelaar Apr 15, 2026
74d5f2e
remove old tenant failed tracing.
KelvinTegelaar Apr 15, 2026
676b5bb
remove duplicate count
KelvinTegelaar Apr 15, 2026
c984ded
added websession for now
KelvinTegelaar Apr 15, 2026
5f75629
improvements and profiling
KelvinTegelaar Apr 15, 2026
eaaa1ca
Delete Cronos.dll from module location as it now lives in shared dir
Zacgoose Apr 16, 2026
25d60ef
Check and install ModuleBuilder if missing
Zacgoose Apr 16, 2026
1047167
Return custom subject object for audit log alerts
Zacgoose Apr 16, 2026
aab6362
fix user logging for group creation api
Zacgoose Apr 16, 2026
ae50bee
Improvements to remove gc which increase throughput
KelvinTegelaar Apr 16, 2026
9e64fb3
token warmup function
KelvinTegelaar Apr 16, 2026
11d0091
token warmup improvements
KelvinTegelaar Apr 16, 2026
e3d2b68
Account for drift deviation acceptance in alignment overview
Zacgoose Apr 17, 2026
2781dd1
correct exception error message handling
Zacgoose Apr 17, 2026
2479571
Add custom scripts to backup
Zacgoose Apr 17, 2026
6505e4d
skip text replacement if tenantfilter is null
Zacgoose Apr 17, 2026
89f8894
STOPPPPPPPP
Zacgoose Apr 17, 2026
e0509bf
In the name of SPEEEEEEEED
Zacgoose Apr 17, 2026
4c4d308
introduce ng orchs
KelvinTegelaar Apr 19, 2026
019d889
cipprest updates
Zacgoose Apr 20, 2026
2b369db
reduce backup size by not including completed tasks
Zacgoose Apr 20, 2026
a76fd55
Fix: Fixes manual processing of audit log searches
Zacgoose Apr 20, 2026
6055de0
Update profile.ps1
Zacgoose Apr 20, 2026
765bc5c
just no
Zacgoose Apr 20, 2026
6d45d05
Update bobby tables for even more speeeeeeeeeed
Zacgoose Apr 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 6 additions & 5 deletions .github/instructions/auth-model.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ New-GraphGetRequest / New-ExoRequest / New-TeamsRequest / etc.
Get-GraphToken($tenantid, $scope, $AsApp)
├─ Check in-memory cache: $script:AccessTokens["{tenantid}-{scope}-{asApp}"]
├─ Check process-wide .NET cache: [CIPP.CIPPTokenCache]::Lookup(key, 120)
│ └─ Hit + not expired → return cached token
├─ Determine grant type:
Expand All @@ -43,7 +43,7 @@ New-GraphGetRequest / New-ExoRequest / New-TeamsRequest / etc.
└─ POST to login.microsoftonline.com/{tenantid}/oauth2/v2.0/token
└─ Cache result in $script:AccessTokens with expires_on
└─ Cache result via [CIPP.CIPPTokenCache]::Store(key, json, expiresOn)
```

The `-tenantid` parameter **drives token acquisition**, not just filtering. It determines which customer tenant the token is issued for.
Expand Down Expand Up @@ -116,10 +116,11 @@ Customer provides their own refresh token, stored in Key Vault per-tenant (keyed

## Token caching

Tokens are cached in `$script:AccessTokens` — a synchronized hashtable keyed by `{tenantid}-{scope}-{asApp}`.
Tokens are cached in `[CIPP.CIPPTokenCache]` — a process-wide `ConcurrentDictionary` backed by a static .NET class in `Shared/CIPPHttp/CIPPHttpClient.cs`.

- **Per-runspace**: Not shared across Azure Functions instances
- **Expiry-aware**: Checks `expires_on` (Unix timestamp) before returning cached token
- **Process-wide**: Shared across all runspaces in the worker process (unlike the old `$script:AccessTokens` which was per-runspace)
- **Cache key**: Built via `[CIPP.CIPPTokenCache]::BuildKey($tenantid, $scope, $asApp, $clientId, $grantType)`
- **Expiry-aware**: `Lookup()` accepts a buffer (seconds) and returns `$false` for expired or soon-to-expire tokens
- **Auto-refresh**: Expired tokens trigger automatic re-acquisition — no manual refresh needed
- **Skip cache**: Pass `-SkipCache $true` to force a fresh token (rare, for debugging)

Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/dev_api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ jobs:
tenant-id: ${{ secrets.DEV_TENANTID }}
subscription-id: ${{ secrets.DEV_SUBSCRIPTIONID }}

- name: Build and stage modules
shell: pwsh
run: ./Tools/Build-DevApiModules.ps1

- name: "Run Azure Functions Action"
uses: Azure/functions-action@v1
id: fa
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ SendNotifications/config.json
Output/
node_modules/.yarn-integrity
yarn.lock
Shared/CIPPHttp/obj/

# Cursor IDE
.cursor/rules
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file removed Modules/AzBobbyTables/3.4.0/AzBobbyTables.PS.dll
Binary file not shown.
86 changes: 0 additions & 86 deletions Modules/AzBobbyTables/3.4.0/CHANGELOG.md

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
RootModule = 'AzBobbyTables.PS.dll'

# Version number of this module.
ModuleVersion = '3.4.0'
ModuleVersion = '3.5.0'

# Supported PSEditions
CompatiblePSEditions = @('Core')
Expand Down Expand Up @@ -110,21 +110,7 @@ PrivateData = @{
# IconUri = ''

# ReleaseNotes of this module
ReleaseNotes = '## [3.4.0] - 2025-07-03

### Added

- Added SortedList as valid type for -Entity parameter [#52](https://github.com/PalmEmanuel/AzBobbyTables/issues/52)
- New command `Get-AzDataTableSupportedEntityType` to get the supported data types for the module when using `-Entity` parameter

### Changed

- Dependency version bumps
- Rewrote core module logic to add a converter system which allows for flexible entity types
- Updated gitversion config for build and release
- Improved module tests for the new type converter system

'
ReleaseNotes = ''

# Prerelease string of this module
# Prerelease = ''
Expand All @@ -146,3 +132,4 @@ PrivateData = @{
# DefaultCommandPrefix = ''

}

109 changes: 109 additions & 0 deletions Modules/AzBobbyTables/3.5.0/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# Changelog for the module

The format is based on and uses the types of changes according to [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [3.5.0] - 2026-04-20

### Changed

- Now shares a single HttpClient across all TableClient/TableServiceClient instances via HttpClientTransport, enabling TCP connection pooling and reducing socket churn in high-concurrency scenarios [#122](https://github.com/PalmEmanuel/AzBobbyTables/pull/122)
- Bump System.Linq.Async from 7.0.0 to 7.0.1

## [3.4.2] - 2026-03-30

### Fixed

- Support Managed Identity on Azure VMs via IMDS fallback ([#116](https://github.com/PalmEmanuel/AzBobbyTables/pull/116))

### Changed

- Updated documentation to include `SortedList` as a supported entity type for `Add-`, `Update-`, and `Remove-AzDataTableEntity` ([#117](https://github.com/PalmEmanuel/AzBobbyTables/pull/117))

## [3.4.1] - 2026-03-05

### Changed

- Bump System.Linq.Async from 6.0.3 to 7.0.0
- Improved error handling to respect -ErrorAction through WriteError

## [3.4.0] - 2025-07-03

### Added

- Added SortedList as valid type for -Entity parameter [#52](https://github.com/PalmEmanuel/AzBobbyTables/issues/52)
- New command `Get-AzDataTableSupportedEntityType` to get the supported data types for the module when using `-Entity` parameter

### Changed

- Dependency version bumps
- Rewrote core module logic to add a converter system which allows for flexible entity types
- Updated gitversion config for build and release
- Improved module tests for the new type converter system

## [3.3.2] - 2025-02-26

### Fixed

- Fixed bug where validation for Partition- and RowKey was not checking case sensitivity [#68](https://github.com/PalmEmanuel/AzBobbyTables/pull/81)

## [3.3.1] - 2024-10-19

### Added

- Added `-OperationType` parameter to `Add-AzDataTableEntity` and `Update-AzDataTableEntity` to support merge or replace operations [#81](https://github.com/PalmEmanuel/AzBobbyTables/pull/81)

## [3.3.0] - 2024-10-18

### Added

- Added command `Get-AzDataTable` to get the names of tables in a storage account [#77](https://github.com/PalmEmanuel/AzBobbyTables/issues/77)

### Changed

- Implemented TableServiceClient to support operations on tables in the storage account.

## [3.2.1] - 2024-07-09

### Fixed

- Fixed bug where empty lines were written to console.

## [3.2.0] - 2024-03-21

### Added

- ETag validation for Update- & Remove-AzDataTableEntity ([#58](https://github.com/PalmEmanuel/AzBobbyTables/issues/58))

### Fixed

- Missing examples of Remove-AzDataTableEntity ([#62](https://github.com/PalmEmanuel/AzBobbyTables/issues/62))

## [3.1.3] - 2024-01-20

### Added

- Added Sampler ([#48](https://github.com/PalmEmanuel/AzBobbyTables/issues/48)).
- Added support for user-assigned managed identities ([#54](https://github.com/PalmEmanuel/AzBobbyTables/issues/54)).

## [3.1.2] - 2024-01-05

### Added

- Help documentation for a DateTime problem caused by the SDK (#43).

## 3.1.1 - 2023-05-03

[unreleased]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.5.0...HEAD
[3.5.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.4.2...v3.5.0
[3.4.2]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.4.1...v3.4.2
[3.4.1]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.4.0...v3.4.1
[3.4.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.2...v3.4.0
[3.3.2]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.1...v3.3.2
[3.3.1]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.0...v3.3.1
[3.3.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.2.1...v3.3.0
[3.2.1]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.2.0...v3.2.1
[3.2.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.1.3...v3.2.0
[3.1.3]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.1.2...v3.1.3
[3.1.2]: https://github.com/PalmEmanuel/AzBobbyTables/compare/d854153aca6c5cce35a123deb86653a0d3289b07...v3.1.2
Loading