LogoLogo
Get CIPPJoin Discord
  • ☕CIPP Documentation
  • 🦸Setup
    • Self Hosting Guide
      • Prerequisites
      • Installation
      • Run From Package Mode
      • Post-Install Configuration
      • Configuring Automatic Updates
      • Updating Versions
      • Migrating to Hosted CIPP
      • Self-hosted API Setup
    • Service Account Setup
      • GDAP's Importance in CIPP
      • Creating the CIPP Service Account
      • Conditional Access best practices
      • Recommended Roles
    • Configuring CIPP
      • Adding users to CIPP
      • Executing the SAM Setup Wizard
      • Tenant Onboarding
      • Adding Tenants & Consenting the CIPP-SAM Application
      • User Roles in CIPP
      • Adding a custom domain name
      • I want to manage my own tenant
    • Implementing CIPP
      • Recommended First Steps
      • Standards Setup
    • Resources
      • Professional Onboarding Services
      • Sponsor Quick Start
  • 🙋User Documentation
    • Shared Features
      • Menu Bar
        • Tenant Select
        • Display Mode
        • 🔍Search
        • Bookmarks
        • User Preferences
      • Table Features
      • Speed Dial
      • Keyboard Shortcuts
    • CIPP Dashboard
    • Identity Management
      • Administration
        • Users
          • Bulk Add
          • Invite Guest
          • Add User
          • View Individual User
            • Edit User
            • Exchange Settings
            • Compromise Remediation
            • Conditional Access
        • Risky Users
        • Groups
          • Add Group
          • Edit Group
        • Group Templates
          • Add Group Template
          • Deploy Group Templates
        • Devices
        • Deleted items
        • Roles
        • JIT Admin
          • Add JIT Admin
        • Offboarding Wizard
      • Reports
        • MFA Report
        • Inactive Users
        • Sign-in Report
        • AAD Connect Report
        • Risk Detections
    • Tenant Administration
      • Administration
        • Tenants
          • Edit Tenant
          • Tenant Groups
            • Add Tenant Group
            • Edit Tenant Group
        • Alert Configuration
          • Add Alert
        • Audit Logs
          • View Audit Log
        • Enterprise Applications
        • Secure Score
        • App Consent Requests
        • Authentication Methods
        • Partner Relationships
      • GDAP Management
        • Relationships
          • Relationship Summary
        • Role Mappings
          • Map GDAP Roles
        • Role Templates
          • Add Template
        • Invites
          • New Invite
        • Onboarding
        • Offboarding
      • Configuration Backup
        • Backups
          • Restore Configuration Backup
          • Add Configuration Backup Task
      • Standards
        • List Standards Templates
        • Add Standards Template
        • Compare Tenant to Standard
        • Best Practice Analyser
          • Best Practice Templates
          • Custom Reports
        • Domains Analyser
      • Conditional Access
        • CA Policies
          • Deploy CA Policies
        • CA Vacation Mode
          • Add Vacation Schedule
        • CA Templates
        • Named Locations
          • Add Named Location
      • Reports
        • License Report
        • Sherweb License Report
          • Add Subscription
        • Consented Applications
    • Security & Compliance
      • Incidents & Alerts
        • Incidents
        • Alerts
      • Defender
        • Defender Status
        • Defender Deployment
        • Vulnerabilities
      • Reports
        • Device Compliance
    • Intune
      • Applications
        • Applications
          • Add Application
            • Add MSP App
            • Add Store App
            • Add Choco App
            • Add Office App
        • Application Queue
      • Autopilot
        • Autopilot Devices
        • Add Autopilot Device
        • Profiles
          • Add Profile
        • Status Pages
        • Add Status Page
      • Device Management
        • Devices
        • Configuration Policies
        • Compliance Policies
        • Protection Policies
        • Apply Policy
        • Policy Templates
        • Scripts
      • Reports
        • Analytics Device Score
        • Work from Anywhere
    • Teams & SharePoint
      • OneDrive
      • SharePoint
        • Add Site
        • Bulk Add Sites
      • Teams
        • Teams
          • Add Team
        • Teams Activity
        • Business Voice
    • Email & Exchange
      • Administration
        • Mailboxes
          • Add Shared Mailbox
        • Deleted Mailboxes
        • Mailbox Rules
        • Contacts
          • Add Contact
          • Edit Contact
        • Quarantine
        • Tenant Allow/Block Lists
          • Add Entry
      • Transport
        • Transport Rules
          • Deploy Transport Rule Template
        • Transport Templates
        • Connectors
          • Deploy Connector Templates
        • Connector Templates
      • Spamfilter
        • Spamfilter
          • Deploy Spamfilter
        • Spamfilter Templates
        • Connection filter
          • Deploy Connection Filter
        • Connection filter templates
      • Resource Management
        • Rooms
          • Add Room
          • Edit Room
        • Room Lists
      • Reports
        • Mailbox Statistics
        • Mailbox Client Access Settings
        • Anti-Phishing Filters
        • Malware Filters
        • Safe Link Filters
        • Safe Attachment Filters
        • Shared Mailbox with Enabled Account
        • Global Address List
    • Tools
      • Tenant Tools
        • Graph Explorer
        • Application Approval
        • Tenant Lookup
        • IP Database
        • Individual Domain Check
      • Email Tools
        • Message Trace
        • Mailbox Restores
        • Message Viewer
      • Dark Web Tools
        • Tenant Breach Lookup
        • Breach Lookup
      • Template Library
      • Community Repositories
        • View Repository Templates
      • Scheduler
        • Add Job
    • CIPP
      • Application Settings
        • Permissions
        • Tenants
        • Backend
        • Notifications
        • Partner Webhooks
        • Licenses
        • CIPP Backup
        • Global Variables
      • Logbook
      • SAM Setup Wizard
      • Integrations
        • Integration Sync
        • CIPP-API
        • Sherweb
        • Gradient
        • Halo PSA Ticketing
        • NinjaOne
        • Hudu
        • Password Pusher
        • Have I Been Pwned?
        • Cloudflare
        • GitHub
      • Custom Data
        • Directory Extensions
          • Add Directory Extension
        • Schema Extensions
          • Add Schema Extension
        • Mappings
          • Add Mapping
          • Edit Mapping
      • Advanced
        • Super Admin
          • Tenant Mode
          • Function Offloading
          • Custom Roles
          • SAM App Roles
          • SAM App Permissions
        • Exchange Cmdlets
        • Timers
        • Table Maintenance
  • 📂Troubleshooting
    • Error codes
    • Troubleshooting instructions
      • Refreshing a Specific Tenant's Permissions via CPV API
    • Frequently Asked Questions
      • I got a "Potential Phishing page detected" alert. What do I do with that?
  • 🔐Security
    • CIPP Security and Compliance
      • Security Policy
      • Security reports
    • CIPP Community Vulnerability Disclosure Policy
  • 👩‍💻👩💻 Dev Documentation
    • CIPP Dev Guide
      • Setting Up for Local Development
      • Executing Local Development
      • Project Structure
      • Development Tips
      • CIPP v7 Developer Brief
    • Contributing to the Code
    • Contributing to the Documentation
  • ⚙️API Documentation
    • Setup & Authentication
    • Endpoints
  • 🧰MSP Adoption Toolkit
    • Building a CIPP Business Case
  • ☕Sip & CIPP
    • Conditional Access
    • Autopilot & Intune
  • CIPP New Interface Release Candidate 2 (rc2)
Powered by GitBook
On this page
  • Video TBD
  • Session Abstract
  • Learning Objectives

Was this helpful?

Edit on GitHub
Export as PDF
  1. Sip & CIPP

From Fork to Feature

Contributing to CIPP : A deep dive into development, forking, API creation, and tips for project contributions

Video TBD

Session Abstract

Our 4th Sip & CIPP session offered an immersive journey into the world of Open Source Software development within the CIPP projects. This workshop was designed to equip future contributors with practical skills in setting up a development environment, forking repositories, and API creation. Attendees explored the nuances of navigating the CIPP codebase, contributing effectively, and implementing best practices in scripting and security. The session also provided a sneak peek into upcoming features, positioning attendees at the forefront of innovative development in the CIPP project.

Learning Objectives

  1. Development Environment Setup: Steps to create a local environment for CIPP development.

  2. Forking Repositories: Best practices for forking CIPP and CIPP-API repositories.

  3. Custom Feature and API Development: Techniques for developing custom features and APIs.

  4. Understanding Codebase: Tips for efficiently navigating the CIPP project's codebase.

  5. Practical Development Tips: Practical tips on testing, environment variables, and security practices in the development workflow.

Detailed Topic Coverage
  1. Local Development Setup:

    • Kelvin emphasized the importance of mirroring the production environment in the local setup to avoid deployment issues.

    • He provided a step-by-step guide on setting up a local development environment, including navigating GitHub, managing branches, and finding specific files like standards.

  2. Forking and Contribution:

    • Participants were guided on creating forks of the CIPP repositories and the necessity of including a development branch in these forks.

    • Kelvin discussed making edits, committing changes, and the process of starting pull requests, highlighting UK English spelling conventions in the project.

  3. Hands-On Development:

    • The session included instructions on starting local development instances and executing commands using tools like winget.

    • Kelvin demonstrated creating and editing standards and APIs within CIPP, focusing on adding new standards, remediation options, and input fields.

  4. Codebase Navigation and Contribution:

    • Kelvin dissected the CIPP project structure, showing how to navigate modules and explaining the significance of each folder.

    • The process of creating new standards, adding them to the front end, and the modularity of CIPP's architecture were highlighted.

  5. Future Developments:

    • Upcoming features and improvements, such as the rewrite of the events engine and new alerting rules, were discussed.

    • Kelvin introduced the concept of if-else-then logic for alerts received through webhooks for more dynamic and customizable responses.

Chat FAQ

Q: Why is the report option not available for CA templates? A: The report option isn't available because multiple templates can be selected at the same time, making it unclear what specifically is being reported.

Q: Can I alert/report on members of a CA policy? A: Creating a custom flow is required to check if a user is logging on without multifactor authentication and if they're a member of the policy.

Q: Is there a way to review and remediate a user's risk state when they get flagged as a risky user? A: This can be achieved using new event-based remediations with a custom if-else-then script.

Q: How are the conversations going with direct CSP providers for integrations? A: Conversations with one tier-one CSP provider are progressing well, focusing on creating APIs for license purchases.

Q: For the updated events engine, would it be possible to alert on a specific application taking action on a user? A: Yes, as long as the application's action is logged, the updated events engine can be configured to alert based on these logs.

Q: Will it ever be possible to have multi-user offboarding? A: Multi-user offboarding might be feasible in the future but is likely to be limited due to risks, like accidentally locking people out of their accounts.

Resources Shared

Last updated 3 months ago

Was this helpful?

A detailed guide for setting up a local development environment for the CIPP React frontend. It includes recommendations for necessary tools and programs, such as Visual Studio Code, PowerShell, Git, Node.js, and .NET SDKs. The guide also covers the process of forking CIPP repositories and setting up the development environment.

A comprehensive step-by-step guide by Gavin Stone on setting up the Secure Application Model for CIPP. It covers everything from being a Global Admin in your tenant to securing and managing API permissions. The guide is especially useful for those struggling with token generation and application setup in Azure AD

This blog post discusses the core aspects of CIPP, focusing on the CIPP-SAM app. It explains that the app is created in the user's tenant during the first run of the SAM Wizard. The SAM Wizard stores several details of the app in a Keyvault resource in Azure, which are used for authentication​​.

: CDX tenants are recommended for testing in the context of CIPP development, offering a controlled environment for practical experimentation.

It was mentioned that Microsoft is working on multi-factor authentication for third parties, with Duo already having an alpha version. Interested parties are suggested to inquire in the MSPGeek #v-duo channel for registration.

: A Git Tutorial for Beginners.

☕
CIPP Development Guide: Setting Up for Local Development
Secure Application Model – For the Layman (gavsto.com):
Leveraging your CIPP-SAM app Blog Post (vdwegen.app):
CDX Tenants for Testing
MSPGeek Discord Community:
Git MERGE vs REBASE: The Definitive Guide