https://github.com/netcentric/cm-notify
https://github.com/netcentric/cm-notify
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/netcentric/cm-notify
- Owner: Netcentric
- License: apache-2.0
- Created: 2025-04-16T08:27:45.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-04-27T16:17:16.000Z (10 months ago)
- Last Synced: 2025-09-14T16:28:07.622Z (5 months ago)
- Language: JavaScript
- Size: 681 KB
- Stars: 0
- Watchers: 16
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: docs/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# cm-notify
[](https://npmjs.org/package/@netcentric/cm-notify)
[](https://github.com/Netcentric/cm-notify-core/actions/workflows/release.yml)
[](https://github.com/netcentric/cm-notify/actions)
[](https://github.com/semantic-release/semantic-release)
[](https://opensource.org/licenses/Apache-2.0)
Cloud Manager Notify is a Node.js application that listens for Cloud Manager events and sends notifications to Slack and Microsoft Teams.
# Installation
- Global installation:
```
npm i -g @netcentric/cm-notify
```
- Local installation:
```
npm i @netcentric/cm-notify
```
# Usage
- If installed globally:
```
cm-notify [COMMAND]
```
- If installed locally:
```
./node_modules/.bin/cm-notify [COMMAND]
```
- Usage as a library:
```javascript
const {
startApp,
startNgrok,
setupGoogle,
setupAdobe
} = require('@netcentric/cm-notify');
startApp();
````
## Commands
- `start:app` - Start the application server to listen for Cloud Manager events
- `start:ngrok` - Start ngrok
- `setup:adobe` - Setup Adobe Cloud Manager pipelines data
- `setup:google` - Setup Google Auth Token
- `test` - Post test event to the local webhook
# Setup
## Environment Variables
- Create a `.env` file in the root folder with the following variables:
Minimal required envs:
```
# Cloud Manager envs
ORGANIZATION_NAME=orgname# used to build the URL for the Pipeline
# Messanger apps env
SLACK_WEBHOOK=webhook_url
```
All envs:
```
# Cloud Manager envs
ORGANIZATION_NAME=orgname# used to build the URL for the Pipeline
CLIENT_ID=e231#used to validate CM event
# Messanger apps env
SLACK_WEBHOOK=https://hooks.slack.com/services/123
# Teams webhook URL
TEAMS_WEBHOOK=https://prod-123.westus.logic.azure.com:443/workflows/123
# Teams email, alternative approach, if Webhook is disabled
TEAMS_EMAIL=email.onmicrosoft.com@amer.teams.ms
# Email sender env
# Only needed if Teams email approach is used
EMAIL_FROM=gmailuser@googleworkspacedomain.com
# App env (optional)
PORT=4000# port to run the application, default is 4000
DATA_PATH=./.data# path to the data folder wher tokens are stored, default is ./.data
# Ngrok env (optional)
# Only needed if ngrok is used for local testing
NGROK_AUTHTOKEN=123
NGROK_DOMAIN=domain-name.ngrok-free.app
```
## Cloud Manager Webhook
1. Go to https://developer.adobe.com/console
2. Create a new project
3. Add Events to the project
4. Select `Cloud Manager Events`
5. Configure Webhook URL as `this-application-URL/webhook`.
- Optional: For local testing, you can use ngrok to expose your local server to the internet.
- Optional: For exploring the events in developer console, you need to add `OAuth credentials` and `I/O Management API`
## Cloud Manager pipelines data (optional)
- Only needed for more details about the pipeline.
1. Get a Cloud Manager list of pipelines
2. Generate valid Cloud Manager list of pipelines
- Details in the [ADOBE.md](docs/setup/ADOBE.md) file.
## Google Auth Token (optional)
- Only needed if you want to send notifications via email.
1. Get Google Auth Credentials
2. Generate Google Auth Token
- Details in the [GMAIL.md](docs/setup/GMAIL.md) file.
# Testing
1. Setup testing slack/teams channel
2. Configure `.env` file
3. Add `.data` files
4. Setup Google and Adobe files
5. Start the application:
```
cm-notify start:app
```
6. Post a test event to the local webhook
```
cm-notify test
```