Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2014 commits
Select commit Hold shift + click to select a range
a87fed3
Add Azure Storage SAS and blob upload utilities
JohnDuprey Dec 21, 2025
c0457be
Update New-CIPPAzServiceSAS.ps1
JohnDuprey Dec 21, 2025
968ed82
Fix for management stats
KelvinTegelaar Dec 21, 2025
e9576d3
Add data collection for tests
KelvinTegelaar Dec 21, 2025
2ad0dcf
db request add type
KelvinTegelaar Dec 21, 2025
a4633fe
reporting
KelvinTegelaar Dec 22, 2025
8a86ddb
Reporting template tests
KelvinTegelaar Dec 22, 2025
85ac7ee
reporting updates
KelvinTegelaar Dec 22, 2025
418a8cc
Tests
KelvinTegelaar Dec 22, 2025
df632ea
tests with reporting
KelvinTegelaar Dec 22, 2025
7fbf1ec
Merge branch 'KelvinTegelaar:master' into master
criani Dec 23, 2025
4a0c111
Update Invoke-CIPPStandardPhishProtection.ps1
criani Dec 23, 2025
a0203a8
Allow reserved app names in include/exclude applications
JohnDuprey Dec 23, 2025
9666ed8
Improve handling of arrays in CA template and comparison
sfaxluke Dec 23, 2025
b090550
ZTNA test batch1
KelvinTegelaar Dec 23, 2025
2323719
Add more tests
KelvinTegelaar Dec 23, 2025
9c8f1de
updates
KelvinTegelaar Dec 23, 2025
950ec36
More ZTNA tests(untested)
KelvinTegelaar Dec 23, 2025
e4c9818
Added Tests
KelvinTegelaar Dec 24, 2025
f61e984
Next batch
KelvinTegelaar Dec 24, 2025
20158d3
Next batch
KelvinTegelaar Dec 24, 2025
e8e1465
extra test
KelvinTegelaar Dec 24, 2025
2ceb15c
Add new tests
KelvinTegelaar Dec 24, 2025
eaae2d8
Added caches
KelvinTegelaar Dec 24, 2025
90a084f
Named locations
KelvinTegelaar Dec 24, 2025
1ef2c30
NEw tests, not tested
KelvinTegelaar Dec 24, 2025
bdc4330
Tests
KelvinTegelaar Dec 24, 2025
e9a6336
updates to tests
KelvinTegelaar Dec 24, 2025
58681f0
Added overwrite toggle for transport rule standard
kakaiwa Dec 24, 2025
d6dde87
Removed yarn files
kakaiwa Dec 24, 2025
749a40d
new tests
KelvinTegelaar Dec 24, 2025
489f507
new tests
KelvinTegelaar Dec 24, 2025
020776a
more tests
KelvinTegelaar Dec 24, 2025
97f1ac6
More tests
KelvinTegelaar Dec 24, 2025
2f885bb
Updated Tests
KelvinTegelaar Dec 24, 2025
291fbf9
Tested first files
KelvinTegelaar Dec 24, 2025
c9cb112
functions that are done
KelvinTegelaar Dec 24, 2025
94663be
Updated New-CIPPCAPolicy to update named locations when overwrite is …
kakaiwa Dec 25, 2025
ac7a4dc
remove backtics, mark as tested.
KelvinTegelaar Dec 26, 2025
4403e7b
Updated tests after testing
KelvinTegelaar Dec 26, 2025
9660318
bug fixes for tests
KelvinTegelaar Dec 26, 2025
a065711
Moved tests
KelvinTegelaar Dec 27, 2025
5536b25
Move files
KelvinTegelaar Dec 27, 2025
e03c96a
Move files
KelvinTegelaar Dec 27, 2025
59838cd
Fix: Fix broken expand for app protection policies
kris6673 Dec 27, 2025
6580150
Initial plan
Copilot Dec 29, 2025
598d5d3
Fix service principal alert URL structure
Copilot Dec 29, 2025
4c1ac08
Fix message text for Remove service principal alert
Copilot Dec 29, 2025
167d2dc
Merge pull request #18 from Zacgoose/copilot/fix-service-principle-al…
Zacgoose Dec 29, 2025
b9d0e39
report update
KelvinTegelaar Dec 29, 2025
6a29014
Merge branch 'KelvinTegelaar:dev' into dev
Zacgoose Dec 30, 2025
4c48a74
Merge pull request #1755 from cipptesting/dev
KelvinTegelaar Dec 30, 2025
7fbadce
Add MFA state and license overviews
KelvinTegelaar Dec 30, 2025
ee8e3ec
Add MFA state
KelvinTegelaar Dec 30, 2025
3338a42
New creation apis
KelvinTegelaar Dec 30, 2025
f28596a
small updates
KelvinTegelaar Dec 31, 2025
9846930
add autocleanup
KelvinTegelaar Dec 31, 2025
73a4311
Improve scheduled task handling and rerun protection
JohnDuprey Jan 1, 2026
acc1dba
push db cache
KelvinTegelaar Jan 1, 2026
52091ef
data collection fix
KelvinTegelaar Jan 1, 2026
8f6543e
test results
KelvinTegelaar Jan 2, 2026
7aa4490
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
JohnDuprey Jan 2, 2026
de77f61
Refactor backup to use blob storage and enhance restore
JohnDuprey Jan 2, 2026
c761bb9
Merge pull request #1757 from Zacgoose/dev
KelvinTegelaar Jan 2, 2026
0f815bb
Merge pull request #1756 from kris6673/fix-app-prot
KelvinTegelaar Jan 2, 2026
0f5dd3c
Create Test-BackupStorageComparison.ps1
JohnDuprey Jan 2, 2026
ab15097
Update Start-DurableCleanup.ps1
JohnDuprey Jan 2, 2026
ec101ef
Check accountEnabled property for shared mailbox user
Zacgoose Jan 2, 2026
89828df
Fix deleted data bug
KelvinTegelaar Jan 2, 2026
1591d04
frontend updates
KelvinTegelaar Jan 2, 2026
c58f485
feat(alerts): add Get-CIPPAlertIntunePolicyConflicts function
MWG-Logan Jan 2, 2026
90c90bc
fix(alerts): correct state comparison in Get-CIPPAlertIntunePolicyCon…
MWG-Logan Jan 2, 2026
1bc2f4b
Merge pull request #1759 from BezaluLLC/intune-error-alerts
KelvinTegelaar Jan 2, 2026
4820ac2
Fix: hashtable alert errors
kris6673 Jan 2, 2026
6cd233d
Merge pull request #1760 from kris6673/fix-CIPPAlertOneDriveQuota
JohnDuprey Jan 2, 2026
a02c796
Skip templates with empty tenant filter groups
JohnDuprey Jan 2, 2026
9e44455
Add synopsis
KelvinTegelaar Jan 2, 2026
1c1bba8
Add synopsis
KelvinTegelaar Jan 2, 2026
adf2d8f
skipped message no data
KelvinTegelaar Jan 2, 2026
a1ce380
skipped when data is missing
KelvinTegelaar Jan 2, 2026
ed4fae1
Updates for tests
KelvinTegelaar Jan 2, 2026
f124bbf
create ability to run tests
KelvinTegelaar Jan 3, 2026
d4e6b20
output binding fixes
KelvinTegelaar Jan 3, 2026
b41127c
clean code
KelvinTegelaar Jan 3, 2026
9d2831d
three new tests
KelvinTegelaar Jan 3, 2026
bbba735
Merge pull request #1754 from sfaxluke/dev
KelvinTegelaar Jan 4, 2026
fdb75e7
Merge pull request #1758 from Zacgoose/accountEnabled-fix
KelvinTegelaar Jan 4, 2026
6ad08e8
updates to cippstandardscomparefield for new planning.
KelvinTegelaar Jan 4, 2026
470c024
updates to compares and prettification
KelvinTegelaar Jan 4, 2026
e96a91e
Fix DynamicRules assignment in Invoke-ExecTenantGroup
JohnDuprey Jan 5, 2026
bd2dd91
Add secret name / ID to table
chase-vgo Jan 5, 2026
1b1e1c7
Simplify log date range filter in Invoke-ListLogs
JohnDuprey Jan 5, 2026
bfe9a6f
Add null checks for tenant and standard keys
JohnDuprey Jan 5, 2026
e9b6d29
Fix: Remove measure command
kris6673 Jan 5, 2026
f5489de
Improve template update logic and compress JSON output
JohnDuprey Jan 5, 2026
f4c5ed0
Add Source property to package tag entity
JohnDuprey Jan 5, 2026
98ce1a3
undo rowkey check
JohnDuprey Jan 5, 2026
5c96f7b
fix mx record alert
JohnDuprey Jan 6, 2026
df13333
Add SkipCache option to tenant group retrieval
JohnDuprey Jan 6, 2026
1a89c01
Add IP range restrictions to roles and enforce in access checks
JohnDuprey Jan 7, 2026
cd60ad2
Update Update-CIPPDynamicTenantGroups.ps1
JohnDuprey Jan 7, 2026
72065da
fix group type in edituser
JohnDuprey Jan 7, 2026
37387c7
Optimize MFA state retrieval and policy mapping
Zacgoose Jan 8, 2026
beecc6e
Fix: Sort group members and owners by displayName
kris6673 Jan 8, 2026
de57f93
Update Invoke-ExecUniversalSearch.ps1
JohnDuprey Jan 9, 2026
0b26bba
Merge pull request #1744 from kris6673/JunkEmailConfiguration
JohnDuprey Jan 10, 2026
8d1cea3
Merge pull request #1765 from kris6673/fix-group-members-sorting
JohnDuprey Jan 10, 2026
cb83916
Merge pull request #1762 from kris6673/fix-alert-app-reg
JohnDuprey Jan 10, 2026
7d19f64
Merge pull request #1761 from chase-vgo/dev
JohnDuprey Jan 10, 2026
3542562
EIDSCA tests
KelvinTegelaar Jan 11, 2026
4b0d646
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Jan 11, 2026
ae712bf
EIDSCA
KelvinTegelaar Jan 11, 2026
878e30a
Remove periods
KelvinTegelaar Jan 11, 2026
d5069f6
Fix incorrect pass/fail markers
KelvinTegelaar Jan 11, 2026
470597d
EIDSCA test names
KelvinTegelaar Jan 11, 2026
4fd3255
ORCA tests start
KelvinTegelaar Jan 11, 2026
cc2b7f0
Introduce ORCA tests
KelvinTegelaar Jan 11, 2026
d28bdfb
reports
KelvinTegelaar Jan 11, 2026
c0163b3
fixes 5171
KelvinTegelaar Jan 11, 2026
ed30fb0
Merge pull request #1764 from Zacgoose/mfareport
KelvinTegelaar Jan 11, 2026
3248729
remove extra ip range calculation
JohnDuprey Jan 11, 2026
7b5996c
Replace Get-AzStorageQueue with Get-CIPPAzStorageQueue
JohnDuprey Jan 11, 2026
c9a5b8f
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
JohnDuprey Jan 11, 2026
8c484e6
ORCA MD files
KelvinTegelaar Jan 11, 2026
a68c883
added MD files
KelvinTegelaar Jan 11, 2026
c2db73d
filename changes
KelvinTegelaar Jan 11, 2026
b697709
Add Set-CIPPDBCacheMailboxes function
JohnDuprey Jan 11, 2026
5d9ad10
Sanitize RowKey values in Add-CIPPDbItem
JohnDuprey Jan 11, 2026
91ad846
Add Exchange license checks and mailbox cache support
JohnDuprey Jan 11, 2026
d938047
Add mailbox cache tasks to DB cache orchestrator
JohnDuprey Jan 11, 2026
8dcee24
CISA tests
KelvinTegelaar Jan 11, 2026
c99ba82
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Jan 11, 2026
d870bd7
Fix issue with conflict
KelvinTegelaar Jan 11, 2026
ffbf9a4
Optimize group and role member caching with bulk requests
JohnDuprey Jan 11, 2026
1c30389
update Identity
KelvinTegelaar Jan 12, 2026
acaab51
fixes bug
KelvinTegelaar Jan 12, 2026
4b4018d
SecDefaultsDisabled
KelvinTegelaar Jan 12, 2026
93ba288
ActivityBasedTimeout to DefaultPlatformRestrictions
JohnDuprey Jan 12, 2026
124a8eb
Add JIT Admin template management and settings
Zacgoose Jan 13, 2026
5ae674d
fix report creation
KelvinTegelaar Jan 13, 2026
ef06f9c
Merge pull request #1767 from Zacgoose/JIT-featues
KelvinTegelaar Jan 13, 2026
e982446
add-member incase object does not yet exist.
KelvinTegelaar Jan 13, 2026
9d634a5
AnonReportDisable to EnrollmentWindowsHelloForBusinessConfiguration
JohnDuprey Jan 13, 2026
05151f8
feat(users): enhance user creation task handling
kris6673 Jan 13, 2026
d43c903
drop log message
JohnDuprey Jan 14, 2026
4adc6fe
Remove redundant log message in template retrieval
JohnDuprey Jan 14, 2026
121cecd
Optimize app template creation with bulk Graph requests
JohnDuprey Jan 14, 2026
2ef9731
Serialize non-string values in standards compare
JohnDuprey Jan 14, 2026
e896fab
Refactor Exchange Connector template handling
JohnDuprey Jan 14, 2026
32566f4
Replace $User with $Headers in Write-LogMessage calls
JohnDuprey Jan 14, 2026
64f11a9
Refactor templateId to TemplateId property usage
JohnDuprey Jan 14, 2026
ec7bdcd
Mark as compliant fixes for policies in tags
KelvinTegelaar Jan 14, 2026
ab8911e
Standardize reporting for CIPP standards modules
JohnDuprey Jan 14, 2026
e30606a
Improve group assignment handling in intune apps
JohnDuprey Jan 15, 2026
3813692
Fix assignment logic in Invoke-AddStoreApp
JohnDuprey Jan 15, 2026
bb22fbc
Fix: Update return message for license assignment
kris6673 Jan 15, 2026
ce3125a
Require tenantFilter in Invoke-AddUser endpoint
JohnDuprey Jan 15, 2026
763574e
Merge pull request #1770 from kris6673/patch-1
KelvinTegelaar Jan 15, 2026
ecce6fc
reliability changes
KelvinTegelaar Jan 15, 2026
8bbd74a
bug fixes drift
KelvinTegelaar Jan 15, 2026
dab467f
Merge branch 'dev' into happy-gary-happy-life
kris6673 Jan 15, 2026
b3d76a6
Merge pull request #1768 from kris6673/happy-gary-happy-life
KelvinTegelaar Jan 15, 2026
b13b1a4
Improve filtering logic in Get-CIPPDbItem
JohnDuprey Jan 16, 2026
095a981
Add Get-CIPPMailboxPermissionReport function
JohnDuprey Jan 16, 2026
f57e458
Refactor Intune policy caching to use bulk Graph requests
JohnDuprey Jan 16, 2026
6f88252
Add mailbox and OneDrive usage cache functions
JohnDuprey Jan 16, 2026
44a8942
Switch to CIPP Reporting DB for extension sync
JohnDuprey Jan 16, 2026
01f3a53
Enhance reporting data and update NinjaOne sync logic
JohnDuprey Jan 16, 2026
958fd19
Deprecate legacy extension sync tasks and update data flow
JohnDuprey Jan 16, 2026
0b7d604
Add universal search for CIPP Reporting DB data
JohnDuprey Jan 16, 2026
251eaec
Update search parameters
JohnDuprey Jan 16, 2026
1da358e
Prevent duplicate scheduled tasks unless completed or failed
JohnDuprey Jan 16, 2026
4b36d96
Enhance mailbox permission report
JohnDuprey Jan 16, 2026
a6b6162
Add support for AllTenants in mailbox permission report
JohnDuprey Jan 16, 2026
2fe8c1d
Show relative time until scheduled task runs
JohnDuprey Jan 16, 2026
a7b91e7
Handle multi-tenant scheduled task completion logic
JohnDuprey Jan 16, 2026
37fc094
update text
KelvinTegelaar Jan 16, 2026
8b94057
JSON convert fix
KelvinTegelaar Jan 16, 2026
59805ed
Fixes cippcatemplate
KelvinTegelaar Jan 16, 2026
37d53a2
Refactor mailbox permissions caching to use batching
JohnDuprey Jan 16, 2026
fb72b2a
Improve AllTenants handling in Invoke-ExecCIPPDBCache
JohnDuprey Jan 16, 2026
5bba822
Enhance MFA state reporting and CA policy resolution
JohnDuprey Jan 16, 2026
c9d2940
Fix typo in log message in Push-ExecCIPPDBCache.ps1
JohnDuprey Jan 16, 2026
f6f26d5
Update default version to 10.0.0
JohnDuprey Jan 16, 2026
2f19fe5
minor prerelease change
KelvinTegelaar Jan 16, 2026
6cc72db
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Jan 16, 2026
47b5958
Merge pull request #1772 from KelvinTegelaar/dev
KelvinTegelaar Jan 16, 2026
72050d3
feat: add auto enable archive mailbox standard
kris6673 Jan 16, 2026
c5eeab1
Change log message severity from Info to Debug
JohnDuprey Jan 16, 2026
6d85886
Filter MFADevices to exclude password auth methods
JohnDuprey Jan 16, 2026
869e768
Update default and latest version to 10.0.1
JohnDuprey Jan 16, 2026
d76bdea
Merge pull request #1774 from KelvinTegelaar/dev
JohnDuprey Jan 16, 2026
0791a3e
Merge pull request #1773 from kris6673/issue5198
KelvinTegelaar Jan 16, 2026
7d4f249
fix typo
JohnDuprey Jan 17, 2026
5d3c362
Add or update the Azure App Service build and deployment workflow config
KelvinTegelaar Jan 17, 2026
fb5ca9a
Merge branch 'KelvinTegelaar:master' into master
criani Jan 17, 2026
dd32e67
Delete .github/workflows/master_cippjiuus.yml
criani Jan 17, 2026
d9c60c7
Update Invoke-ListMFAUsers.ps1
criani Jan 18, 2026
79e523e
Update Get-CIPPMFAState.ps1
criani Jan 18, 2026
ff01a49
Delete .github/workflows/master_prospectorcipp62evl.yml
criani Jan 18, 2026
d96bb4a
Update Invoke-CIPPStandardPhishProtection.ps1
criani Jan 18, 2026
f97cb87
Merge pull request #1778 from criani/dev
KelvinTegelaar Jan 18, 2026
8634610
Create Get-CIPPAlertSecureScore.ps1
Zacgoose Jan 19, 2026
65c48fc
Filter tenants using Get-Tenants in report scripts
JohnDuprey Jan 19, 2026
276c049
Merge pull request #1779 from Zacgoose/securescore-alert
KelvinTegelaar Jan 19, 2026
682bda5
Nullify Package and SHA only if present in template
JohnDuprey Jan 20, 2026
7bc5a5e
sort names
JohnDuprey Jan 20, 2026
c5b167f
Improve filtering logic for count rows in Get-CIPPDbItem
JohnDuprey Jan 20, 2026
70f86d2
Add calendar permissions batch processing and storage
JohnDuprey Jan 20, 2026
c9c7320
Refactor cache data collection to dynamic orchestration
JohnDuprey Jan 20, 2026
8f75c4d
remove log
JohnDuprey Jan 20, 2026
5baa5d1
fixes compares for some results
KelvinTegelaar Jan 20, 2026
c407c9d
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Jan 20, 2026
a8a7b6f
arr fix
KelvinTegelaar Jan 20, 2026
efe1c1a
arr fix
KelvinTegelaar Jan 20, 2026
3f91512
control update
KelvinTegelaar Jan 20, 2026
4a2a9fc
fix reporting
KelvinTegelaar Jan 20, 2026
e9a3a63
fixes reporting
KelvinTegelaar Jan 20, 2026
493cb38
fixes reporting
KelvinTegelaar Jan 20, 2026
3b5927f
improve CA handling.
KelvinTegelaar Jan 20, 2026
978075a
Fixes CA compare
KelvinTegelaar Jan 20, 2026
4314e73
Add 'On' mode to Set-CIPPAssignedPolicy
JohnDuprey Jan 20, 2026
1aa1df2
Add DateFilter support and output to log listing
JohnDuprey Jan 20, 2026
98a3ceb
CA compares
KelvinTegelaar Jan 20, 2026
1b1ff42
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Jan 20, 2026
191e269
Deprecate Sync-CippExtensionData and update cleanup rules
JohnDuprey Jan 20, 2026
7d59134
Improve error handling in report endpoints
JohnDuprey Jan 20, 2026
7f88c32
Add calendar permission report retrieval
JohnDuprey Jan 20, 2026
9f77cf5
fix: update tenant data check to fix unhandled exception
kris6673 Jan 20, 2026
2adc33f
Include OpenIdConfig in external tenant info response
JohnDuprey Jan 20, 2026
1bcce83
fix mx alert so that cache data is stored before trace is written.
KelvinTegelaar Jan 20, 2026
8a6a648
feat: dedupe licenses and add in new ones
kris6673 Jan 20, 2026
06ce65a
feat: initialize excluded licenses from config
kris6673 Jan 20, 2026
b768b5e
feat: refactor license exclusion management
kris6673 Jan 20, 2026
af03ef5
Fixes list groups
KelvinTegelaar Jan 20, 2026
942e7ed
Skip members without GroupId in tenant group scripts
JohnDuprey Jan 21, 2026
25e10ef
Add licenseProcessingState to group select fields
JohnDuprey Jan 21, 2026
89e3746
perform tenant data collection in sequence
JohnDuprey Jan 21, 2026
86cdd9d
Add function to reprocess user license assignments
JohnDuprey Jan 21, 2026
05a48af
Merge pull request #1781 from kris6673/excluded--SKUs
KelvinTegelaar Jan 21, 2026
2ad2b4d
Merge pull request #1780 from kris6673/fix-assesments-not-updating
KelvinTegelaar Jan 21, 2026
a0af36e
expansion fix
KelvinTegelaar Jan 21, 2026
3292b86
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Jan 21, 2026
1b1ca42
Improve MFA user data handling and error logging
JohnDuprey Jan 21, 2026
defe3b9
bump version to 10.0.3
JohnDuprey Jan 21, 2026
2063a86
Switch to GitHub API for release notes generation
JohnDuprey Jan 21, 2026
d2d5469
standards fixes
JohnDuprey Jan 21, 2026
7fa131a
fix permissions for limited tenant lists
JohnDuprey Jan 21, 2026
9e8702c
Add direct role assignments to Get-CippDbRoleMembers
JohnDuprey Jan 21, 2026
69e9e6f
Fix parameter naming inconsistencies in test scripts
JohnDuprey Jan 21, 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
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FUNCTIONS_WORKER_RUNTIME='powershell'
FUNCTIONS_WORKER_RUNTIME_VERSION='7.4'
AzureWebJobsStorage='DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNoBnZf6KgBVU4=;BlobEndpoint=http://azurite:10000/devstoreaccount1;QueueEndpoint=http://azurite:10001/devstoreaccount1;TableEndpoint=http://azurite:10002/devstoreaccount1;'
DEV_SKIP_BPA_TIMER='true'
DEV_SKIP_DOMAIN_TIMER='true'
FUNCTIONS_EXTENSION_VERSION='4'
NonLocalHostAzurite='true'
113 changes: 113 additions & 0 deletions .github/agents/CIPP-Alert-Agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
---
# Fill in the fields below to create a basic custom agent for your repository.
# The Copilot CLI can be used for local testing: https://gh.io/customagents/cli
# To make this agent available, merge this file into the default repository branch.
# For format details, see: https://gh.io/customagents/config

name: CIPP Alert Engineer
description: >
Implements and maintains CIPP tenant alerts in PowerShell using existing CIPP
patterns, without touching API specs, avoiding CodeQL, and using
Test-CIPPStandardLicense for license/SKU checks.
---

# CIPP Alert Engineer

## Mission

You are an expert CIPP alert engineer for the CIPP repository.

Your job is to implement, update, and review **alert-related functionality** in CIPP, following existing repository patterns and conventions. You primarily work on:

- Creating new `Get-CIPPAlert*` PowerShell functions
- Adjusting existing alert logic when requested
- Ensuring alerts integrate cleanly with the existing scheduler and alerting framework
- Performing light validation and linting

You **must follow all constraints in this file** exactly.

---

## Scope of Work

Use this agent when a task involves:

- Adding a new alert (e.g. “implement alert for X condition”)
- Modifying logic of an existing alert
- Investigating how alerts are scheduled, run, or configured
- Performing small refactors or improvements to alert-related PowerShell code

You **do not** make broad architectural changes. Keep changes focused and minimal.

---

## Key Directories & Patterns

When working on alerts, you should:

1. **Discover existing alerts and patterns**
- Use shell commands to explore:
- `Modules/CIPPCore/Public/Alerts/`
- Inspect several existing alert files, e.g.:
- `Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1`
- Other `Get-CIPPAlert*.ps1` files
- Understand how alerts are **named, parameterized, and how they call Graph / Exo and helper functions**.

2. **Follow the standard alert pattern**
- Alert functions live in:
`Modules/CIPPCore/Public/Alerts/`
- Alert functions are named:
`Get-CIPPAlert<Something>.ps1`
- Typical characteristics:
- Standard parameter set, including `TenantFilter` and similar common params.
- Uses CIPP helper functions like:
- `New-GraphGetRequest` / other Graph or Exo helpers
- `Write-AlertTrace` for emitting alert results
- Uses CIPP logging and error-handling patterns (try/catch, consistent message formatting).

3. **Rely on existing module loading**
- The CIPP module auto-loads `Public` functions recursively.
- **Do not** modify module manifest or loader behavior just to pick up your new alert.

---

## Critical Constraints

You **must** respect all of these:

### 1. Always follow existing CIPP alert patterns

When adding or modifying alerts:

- Use the **same structure** as existing `Get-CIPPAlert*.ps1` files:
- Similar function signatures
- Similar logging and error handling
- Same approach to returning alert data via `Write-AlertTrace`
- Reuse helper functions instead of inlining raw Graph calls or custom HTTP code, whenever possible.
- Keep alert behavior predictable and consistent with existing alerts.

### 2. No CodeQL runs

- **Do not** invoke CodeQL or similar heavy security tooling in your workflow.
- Rely on:
- PowerShell syntax checking
- `PSScriptAnalyzer`
- Manual/code-review style reasoning for security (no secrets, least privilege, etc.)

### 3. License / SKU checks must use `Test-CIPPStandardLicense`

When an alert depends on a tenant having certain SKUs or capabilities, you **must**:

- Use `Test-CIPPStandardLicense`
- Do **not** manually inspect SKUs, raw license IDs, or raw capability lists.

Example pattern (adapt to the specific feature):

```powershell
$TestResult = Test-CIPPStandardLicense -StandardName 'AutopilotProfile' -TenantFilter $Tenant -RequiredCapabilities @(
'INTUNE_A',
'MDM_Services',
'EMS',
'SCCM',
'MICROSOFTINTUNEPLAN1'
)
142 changes: 142 additions & 0 deletions .github/agents/CIPP-Standards-Agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
---
name: CIPP Standards Engineer
description: >
This agent creates a new standard based on existing standards inside of the CIPP codebase.
The agent must never modify any other file or perform any other change than creating a new standard.
---

# CIPP Standards Engineer

name: CIPP Alert Engineer
description: >
Implements and maintains CIPP tenant alerts in PowerShell using existing CIPP
patterns, without touching API specs, avoiding CodeQL, and using
Test-CIPPStandardLicense for license/SKU checks.
---

# CIPP Alert Engineer

## Mission

You are an expert CIPP Standards engineer for the CIPP repository.

Your job is to implement, update, and review **Standards-related functionality** in CIPP, following existing repository patterns and conventions. You primarily work on:

- Creating new `Invoke-CIPPStandard*` PowerShell functions
- Adjusting existing standard logic when requested
- Ensuring standards integrate into the frontend by returning the correct information
- Performing light validation and linting

You **must follow all constraints in this file** exactly.

---

## Scope of Work

Use this agent when a task involves:

- Adding a new standard (e.g. “implement a standard to enable the audit log”)

You **do not** make broad architectural changes. Keep changes focused and minimal.

---

## Key Directories & Patterns

When working on alerts, you should:

1. **Discover existing alerts and patterns**
- Use shell commands to explore:
- `Modules/CIPPCore/Public/Standards/`
- Inspect several existing alert files, e.g.:
- `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardAddDKIM.ps1`
- `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardlaps.ps1`
- `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardOutBoundSpamAlert.ps1`
- Other `Invoke-CIPPStandard*.ps1` files
- Understand how alerts are **named, parameterized, and how they call Graph / Exo and helper functions**.

2. **Follow the standard alert pattern**
- Alert functions live in:
`Modules/CIPPCore/Public/Standardss/`
- Alert functions are named:
`Invoke-CIPPStandardAddDKIM.ps1`
- Typical characteristics:
- Standard parameter set, including `Tenant` and `Settings` which can be a complex object with subsettings, and similar common params.
- Uses CIPP helper functions like:
- `New-GraphGetRequest` for any graph requests
- `New-ExoReques` for creating exo requests
- Uses CIPP logging and error-handling patterns (try/catch, consistent message formatting).
- Each standard requires a Remediate, alert, and report section.

3. **Rely on existing module loading**
- The CIPP module auto-loads `Public` functions recursively.
- **Do not** modify module manifest or loader behavior just to pick up your new standard.

---

## Critical Constraints

You **must** respect all of these:

### 1. Always follow existing CIPP alert patterns

When adding or modifying alerts:

- Use the **same structure** as existing `Invoke-CIPPStandard*.ps1` files:
- Similar function signatures
- Similar logging and error handling
- Reuse helper functions instead of inlining raw Graph calls or custom HTTP code.
- Keep behaviour predictable.

### 2. Return the code for the frontend.

The frontend requires a section to be changed in standards.json. This is an example JSON payload:

```json
{
"name": "standards.MailContacts",
"cat": "Global Standards",
"tag": [],
"helpText": "Defines the email address to receive general updates and information related to M365 subscriptions. Leave a contact field blank if you do not want to update the contact information.",
"docsDescription": "",
"executiveText": "Establishes designated contact email addresses for receiving important Microsoft 365 subscription updates and notifications. This ensures proper communication channels are maintained for general, security, marketing, and technical matters, improving organizational responsiveness to critical system updates.",
"addedComponent": [
{
"type": "textField",
"name": "standards.MailContacts.GeneralContact",
"label": "General Contact",
"required": false
},
{
"type": "textField",
"name": "standards.MailContacts.SecurityContact",
"label": "Security Contact",
"required": false
},
{
"type": "textField",
"name": "standards.MailContacts.MarketingContact",
"label": "Marketing Contact",
"required": false
},
{
"type": "textField",
"name": "standards.MailContacts.TechContact",
"label": "Technical Contact",
"required": false
}
],
"label": "Set contact e-mails",
"impact": "Low Impact",
"impactColour": "info",
"addedDate": "2022-03-13",
"powershellEquivalent": "Set-MsolCompanyContactInformation",
"recommendedBy": []
},
```

the name of the standard should be standards.<standardname>. e.g. Invoke-CIPPStandardMailcontacts becomes standards.Mailcontacts.

Added components might be required to populate the $settings variable. for example addedcomponent "standards.MailContacts.GeneralContact" becomes $Settings.GeneralContact

When creating the PR, return the json in the PR text so a frontend engineer can update the frontend repository.
73 changes: 42 additions & 31 deletions .github/workflows/dev_api.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,42 @@
# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: dev_api

on:
push:
branches:
- dev
workflow_dispatch:

env:
AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root

jobs:
deploy:
if: github.event.repository.fork == false && github.event_name == 'push'
runs-on: windows-latest

steps:
- name: 'Checkout GitHub Action'
uses: actions/checkout@v4

- name: 'Run Azure Functions Action'
uses: Azure/functions-action@v1
id: fa
with:
app-name: 'cippjta72'
slot-name: 'Production'
package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_5B44448119C645C099EE192346D7433A }}
# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: dev_api

on:
push:
branches:
- dev
workflow_dispatch:

env:
AZURE_FUNCTIONAPP_PACKAGE_PATH: "." # set this to the path to your web app project, defaults to the repository root

jobs:
deploy:
permissions:
id-token: write #This is required for requesting the JWT
contents: read #This is required for actions/checkout
if: github.event.repository.fork == false && github.event_name == 'push'
runs-on: windows-latest

steps:
- name: "Checkout GitHub Action"
uses: actions/checkout@v4
with:
persist-credentials: false

- name: Login to Azure
uses: azure/login@v2
with:
client-id: ${{ secrets.DEV_CLIENTID }}
tenant-id: ${{ secrets.DEV_TENANTID }}
subscription-id: ${{ secrets.DEV_SUBSCRIPTIONID }}

- name: "Run Azure Functions Action"
uses: Azure/functions-action@v1
id: fa
with:
app-name: "cippjta72"
slot-name: "Production"
package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
31 changes: 0 additions & 31 deletions .github/workflows/dev_api_proc.yml

This file was deleted.

Loading