Conversation
|
@Deenk , I seem to be running into repeated 500 errors on the Backup Management OOB dashboards. Looking at the logs, one of the offending endpoints seems to be
|
@gdorward This is probably because our license expired for the 'backups' module in NinjaOne. I'll investigate if that truly is the case and either request they fix it, or fix whatever is broken on our side depending on who's fault it is |
|
I'm getting this error on imports all of a sudden @Deenk - specifically importing devices:
|
I broke this during my testing adding more devices, pushing a fix for this now |
@gdorward this is now fixed |
@gdorward backups are now all fixed |
|
@Deenk Theres around 19 Data streams that don't support any timeframes but 'None' is not available in the dropdown. This is causing a lot of warnings across multiple OOBs as well as they are defaulting to 'None' |
|
|
||
| // Convert numeric IDs to strings | ||
| const idFields = ['deviceId', 'organizationId', 'locationId']; | ||
| idFields.forEach(field => { |
There was a problem hiding this comment.
Should we consider just setting the shape to string for this column, you shouldn't need to coerce it here.
| * @param {any} obj | ||
| * @returns {any} | ||
| */ | ||
| const convertTimestamps = (obj) => { |
There was a problem hiding this comment.
Shame to have to repeat this so much, but it's not easy to share the script functionality today - are you having to do this here because SquaredUp isn't recognising the timestamp format used by NinjaOne?
| "name": "totalPhysicalMemory", | ||
| "displayName": "Total Memory (Bytes)", | ||
| "shape": [ | ||
| "number", |
There was a problem hiding this comment.
Could you use the bytes shape for these columns & other streams? SquaredUp will use the most appropriate unit when formatting, i.e. you'll get 4.2GB rather than 421030505
| "mode": "none" | ||
| }, | ||
| "expandInnerObjects": true, | ||
| "endpointPath": "/v2/organization/{{objects[0].organizationId}}/locations", |
There was a problem hiding this comment.
Given this only works with a single object, we should set objectLimit here to avoid users selecting multiple objects?
| "mode": "none" | ||
| }, | ||
| "expandInnerObjects": false, | ||
| "endpointPath": "/v2/device/{{objects[0].deviceId}}/software", |
There was a problem hiding this comment.
Same again with the object limit
| "mode": "none" | ||
| }, | ||
| "expandInnerObjects": true, | ||
| "endpointPath": "/v2/ticketing/trigger/board/{{objects[0].boardId}}/run", |
| "h": 2, | ||
| "x": 0, | ||
| "y": 0, | ||
| "i": "sec-kpi-activethreats-001", |
There was a problem hiding this comment.
I think these IDs should be guids - though I know we don't have a full schema right now.
| }, | ||
| { | ||
| "category": "feedback", | ||
| "url": "https://feedback.squaredup.com/plugins/p/ninjaone", |
There was a problem hiding this comment.
This link looks dead - have we got an alternative page, or could use the support ticket page?
| "name": "name", | ||
| "type": { "value": "NinjaOne Organization" }, | ||
| "properties": [{ "organizationId": "id" }, "description", "nodeApprovalMode"], | ||
| "externalLink": "{{instanceUrl}}/app/organizations/{{id}}" |
There was a problem hiding this comment.
Should this be under properties?
Notably, I think you should be able to set links, but we might have an issue with the syntax as there's an open ticket: https://squaredup-eng.atlassian.net/browse/SAAS-9111?search_id=186f205d-1b37-4db8-801f-bc66ebaf628f
🧩 Plugin PR Summary📦 Modified Plugins
📋 Results
🔍 Validation Details✅
|
vinbab
left a comment
There was a problem hiding this comment.
@Deenk feedback on Objects
- My recommendation is to use a Source Type name that reflects how it's called in NinjaOne / API. For instance, in Pingdom, the SourceType is
probes/checksnotPingdom Probes. It does not look best but we have a mechanism that lets us define custom friendly name if we wanted to. In short, I'd recommend not artificially addingNinjaOne.... Akin to HaloPSA, we haveAgent, notHaloPSA Agent
vinbab
left a comment
There was a problem hiding this comment.
@Deenk feedback on OOB dashboards:
- I recommend setting a fixed timeframe for some of the Overview dashboard so they don't try to load too much / everything. First time users might find that slow. For instance, the Activity Log dashboard times out OOB for me. I'd recommend either setting a timeframe (7 days is often a good middle ground) or filtering to a specific Status (Open)
- It would be useful on the Device Overview to have at tile towards the top with a drilldown link to the Device perspective, gives a sense of endless exploration out-of-the-box
- Same with Orgnization Overview
- Check to see if other Overview dashboards have a relevant drilldown to add too
- TicketBoards folder ->
Ticket Boards
I think this goes beyond just the OOB dashboards. I set up an Alerts tile and it warns based on the dashboard timeframe, applies |
There was a problem hiding this comment.
@Deenk data streams list
Devices,Location DevicesandOrganization Devices: those data streams look similar. If that is from one endpoint with query / URL filters, could they be merged into one data stream with Parameters to filter? Else could they be named to start withDevices (...- Same as above with
LocationsandOrganization Locations Software (Global)andVolume (Global)don't return anything. I see they have different API endpoints, so probably makes sense to have them separate toSoftwareorVolumelike you have done.- Should these data streams be named to be grouped together, e.g.
Devices(...: Disks, Volumes, Network Interfaces, Processors, Operating Systems - Could
Device HealthandHealthbe merged? Same endpoint, different URL query filters it seems
vinbab
left a comment
There was a problem hiding this comment.
@Deenk Activities data stream constantly times out for me. I'll pause my review here and wait for @AliceG-Sq 's test comments and @gdorward about timeframe to be addressed. Then I'll do some final checks on column data types.




🔌 Plugin overview
🖼️ Plugin screenshots
Plugin configuration
Default dashboards
🧪 Testing
I have tested that every data stream returns unnested arrays and results. data types should all be correct for strings, numbers, dates
There are a number of ninjaone modules/add ons based on the licence tier of the customer. I already support the backups and tickets modules, but there are 5/6 more I could add support for later.
📚 Checklist