{"id":25020685,"url":"https://github.com/panoramicdata/logicmonitor.provisioning","last_synced_at":"2026-02-24T09:35:26.331Z","repository":{"id":88992241,"uuid":"196995739","full_name":"panoramicdata/LogicMonitor.Provisioning","owner":"panoramicdata","description":"Provisions a new customer into a multi-tenanted LogicMonitor account.","archived":false,"fork":false,"pushed_at":"2024-12-08T17:12:29.000Z","size":210006,"stargazers_count":0,"open_issues_count":8,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-13T04:41:31.421Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/panoramicdata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-07-15T12:36:40.000Z","updated_at":"2024-12-08T17:12:33.000Z","dependencies_parsed_at":"2023-06-13T11:15:19.768Z","dependency_job_id":"282f0f1b-f07d-4790-baee-8452b3390eeb","html_url":"https://github.com/panoramicdata/LogicMonitor.Provisioning","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/panoramicdata/LogicMonitor.Provisioning","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panoramicdata%2FLogicMonitor.Provisioning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panoramicdata%2FLogicMonitor.Provisioning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panoramicdata%2FLogicMonitor.Provisioning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panoramicdata%2FLogicMonitor.Provisioning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/panoramicdata","download_url":"https://codeload.github.com/panoramicdata/LogicMonitor.Provisioning/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panoramicdata%2FLogicMonitor.Provisioning/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29777928,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:54:30.205Z","status":"ssl_error","status_checked_at":"2026-02-24T04:53:58.628Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-05T12:17:08.808Z","updated_at":"2026-02-24T09:35:26.296Z","avatar_url":"https://github.com/panoramicdata.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LogicMonitor.Provisioning\n\nImportant: recent breaking change: you may need to update you configuration to update (case-sensitively):\n- all instances of the word \"device\" to the word \"resource\"\n- all instances of the word \"Device\" to the word \"Resource\"\nIf you are new to the tool, you can ignore this!\n\n## Introduction\n\nThis is a command line application for provisioning\na customer or site in a LogicMonitor system.\n\n## Regular Users\n\nMost users will find it easiest to just install the tool and run it.  To do so:\n1.\tDownload the MSI [here](https://github.com/panoramicdata/LogicMonitor.Provisioning/blob/main/Installer/LogicMonitor.Provisioning.Setup.msi).\n2.  Run the installer\n3.  Press [Windows] and type \"LogicMonitor P\"\n4.  Select \"LogicMonitor Provisioning Folder\"\n5.  Follow the configuration instructions below\n6.  Press [Windows] and type \"LogicMonitor P\"\n7.  Select \"LogicMonitor Provisioning\"\n\n## Developers\n\nTo run in debug:\n1.  Install Visual Studio 2022 (Community is fine)\n2.  Clone the project from Github to your local machine\n3.  Open the .sln file\n4.  Follow the configuration instructions below\n5.  Run in debug mode\n\nTo create the installer:\n1.  Ensure that the \"Microsoft Visual Studio Installer Projects\" extension is installed\n2.  Build the LogicMonitor.Provisioning.Setup project in the \"Release\" configuration\n3.  This will create an MSI file in the LogicMonitor.Provisioning.Setup/Release folder\n\n## Google Drive\n\nSure, here are the instructions formatted in Markdown:\n\n# Instructions to Create a Google Cloud Client ID for Desktop (OAuth 2.0)\n\nFollow these steps to create a Google Cloud Client ID for a desktop application called \"LogicMonitor Provisioner\" with full read access to Google Drive.\n\n1. **Go to the Google Cloud Console:**\n   - Open your web browser and go to [Google Cloud Console](https://console.cloud.google.com/).\n\n2. **Create a New Project:**\n   - In the top-left corner, click on the project dropdown and select \"New Project\".\n   - Enter a project name (e.g., \"LogicMonitor Provisioner Project\") and select your organization if applicable.\n   - Click \"Create\".\n\n3. **Enable APIs and Services:**\n   - In the left-hand navigation menu, click on \"APIs \u0026 Services\" \u003e \"Library\".\n   - In the search bar, type \"Google Drive API\" and select it from the list.\n   - Click \"Enable\" to enable the API for your project.\n\n4. **Create OAuth Consent Screen:**\n   - In the left-hand menu, click on \"OAuth consent screen\".\n   - Select \"External\" and click \"Create\".\n   - Fill in the required fields such as \"App name\" (e.g., \"LogicMonitor Provisioner\"), \"User support email\", and \"Developer contact information\".\n   - Click \"Save and Continue\".\n   - Add scopes by clicking on \"Add or Remove Scopes\" and select the following scope:\n     - `../auth/drive.readonly` - Full read access to the user's Google Drive.\n   - Click \"Save and Continue\".\n   - Add test users (your email address or any other test user email addresses).\n   - Click \"Save and Continue\", and then \"Back to Dashboard\".\n\n5. **Create OAuth 2.0 Client ID:**\n   - In the left-hand menu, click on \"Credentials\".\n   - Click \"Create Credentials\" and select \"OAuth 2.0 Client ID\".\n   - Choose \"Desktop app\" as the application type.\n   - Enter a name for your client ID (e.g., \"LogicMonitor Provisioner\").\n   - Click \"Create\".\n   - A dialog will appear with your Client ID and Client Secret. Note these down securely.\n\n6. **Download JSON File:**\n   - In the Credentials page, find your newly created OAuth 2.0 Client ID.\n   - Click on the download icon (downward arrow) to download the JSON file.\n   - Provide this JSON file to the application that requires it for OAuth 2.0 authentication.\n\nYour client has now created a Google Cloud Client ID for a desktop application, which can be used to gain read access to their Google Drive files using OAuth 2.0.\n\n## Configuration\n\n1.  Copy the appsettings.example.json to appsettings.json in the same folder\n2.  Either\n    - Copy the data.example.xlsx to data.xlsx in the same folder and use the Xlsx repetition type OR\n    - Copy the data.example.xlsx to Google drive, ensuring that the Application is authorized to access the file\n3.  Ensure that all tables in the XLSX file are formatted as tables.\n4.  Edit the files as follows:\n\n### appsettings.json\n\n#### LogicMonitor credentials\n\nTo complete this, you will need to [create a LogicMonitor API Token](https://www.logicmonitor.com/support/settings/users-and-roles/api-tokens).\n\nConfigure your logicMonitor credentials as follows:\n-  Account: this is the first part of your LogicMonitor URL. For example, 'acme' in https://acme.logicmonitor.com/.\n-  AccessId: Add \n-  AccessKey: Add (You won't be able to view in LogicMonitor once the API key is saved)\n\n#### Variables\nThese are tokens that can be repeated later on in your configuration.  Optional.\n\n#### Repetition\nThe entire configuration can be applied multiple times.\n-  Type 'None': No repetition. \n-  Type 'Xlsx' or 'GoogleDriveXlsx': Repeat the config for each row in the sheet specified in Config.\n-  Config:\n   -  Xlsx repetition type, set this to \u0026lt;import file path\u0026gt;|\u0026lt;sheet name\u0026gt;  The config will be applied to all rows in the single table on that sheet.\n   -  GoogleDriveXlsx repetition type, set this to \u0026lt;import file id\u0026gt;|\u0026lt;sheet name\u0026gt;  The config will be applied to all rows in the single table on that sheet.\n\n#### Collectors\nThe specification of the Collector Group to create/delete.\n\n#### Dashboards\nThe specification of the Dashboard Group to create/delete.\n\n#### Resources\nThe specification of the Resource Group to create/delete.\n\n#### Mappings\nThe specification of the Mapping Group to create/delete.\n\n#### Netscans\nThe specification of the Netscan Group to create/delete.\n\n#### Reports\nThe specification of the Report Group to create/delete.\n\n#### Roles\nThe specification of the Role Group to create/delete.\n\n#### Users\nThe specification of the User Group to create/delete.\n\n#### Websites\nThe specification of the Website Group to create/delete.\n\n#### RoleConfigurations\nThe specification of the Role Configurations to create/delete.\n\n### data.xlsx\n\nThis file should contain multiple sheets:\n*  One for repetition (if repetition type Xlsx is used)\n\t*  a sheet with a single table with two rows: one for customer 1, one for customer 2\n*  One per list that you wish to manage, for example:\n  *  one sheet with a single table containing all subnets for customer 1\n  *  another sheet with a single table containing all subnets for customer 2\n\n## Running\n\nWhen running, by default the system will look for the appsettings.json file.\nIf you want to force a mode, you can do this in the appsettings.json file, though we recommend that you start in \"Menu\" mode, as configured in appsettings.example.json.\nFrom menu mode, you can choose to \"C\"reate or \"D\"elete the configuration specified in your appsettings.json file.\nPress Ctrl+C to exit the application.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanoramicdata%2Flogicmonitor.provisioning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpanoramicdata%2Flogicmonitor.provisioning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanoramicdata%2Flogicmonitor.provisioning/lists"}