Microsoft 365 Files — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Microsoft 365 Files (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Microsoft 365 provides two file storage surfaces: OneDrive (personal, per-user) and SharePoint (team/department libraries). Both are accessible through the same Microsoft Graph /drives endpoint. MSP support tasks include investigating access issues, checking storage quotas, managing sharing permissions, and transferring file access during offboarding.
| Surface | Use | Graph Resource |
|---|---|---|
| OneDrive Personal | Individual user's documents | /users/{id}/drive |
| SharePoint Site Drive | Team/department files | /sites/{id}/drives |
| SharePoint Library | Document library within a site | /drives/{driveId} |
GET /v1.0/users/{userId}/drive?$select=id,name,quotaResponse:
{
"id": "drive-guid",
"name": "OneDrive",
"quota": {
"used": 5368709120,
"remaining": 1127428915200,
"total": 1132797624320,
"state": "normal"
}
}state values: normal, nearing, critical, exceeded
GET /v1.0/users/{userId}/drive/root/children?$select=id,name,size,lastModifiedDateTime,webUrl,folder,fileGET /v1.0/users/{userId}/drive/items/{folderId}/children?$select=id,name,size,lastModifiedDateTime,webUrlGET /v1.0/users/{userId}/drive/root/search(q='budget 2024')?$select=id,name,parentReference,lastModifiedDateTime,webUrlGET /v1.0/drives/{driveId}/items/{itemId}/permissionsResponse includes:
{
"value": [
{
"id": "perm-id",
"roles": ["write"],
"grantedToV2": {
"user": { "displayName": "Bob Manager", "email": "[email protected]" }
},
"link": null
},
{
"id": "link-id",
"roles": ["read"],
"link": {
"type": "view",
"scope": "anonymous",
"webUrl": "https://contoso-my.sharepoint.com/..."
}
}
]
}POST /v1.0/drives/{driveId}/items/{itemId}/createLink
Content-Type: application/json
{
"type": "view",
"scope": "organization"
}type: view, edit, embed scope: anonymous, organization, users
POST /v1.0/drives/{driveId}/items/{itemId}/invite
Content-Type: application/json
{
"requireSignIn": true,
"sendInvitation": false,
"roles": ["read"],
"recipients": [
{ "email": "[email protected]" }
],
"message": "Shared as part of employee transition"
}DELETE /v1.0/drives/{driveId}/items/{itemId}/permissions/{permissionId}Grant another user access to the departing employee's entire OneDrive:
POST /v1.0/users/{departingUserId}/drive/root/invite
Content-Type: application/json
{
"requireSignIn": true,
"sendInvitation": false,
"roles": ["write"],
"recipients": [{ "email": "[email protected]" }]
}Full ownership transfer (changing site admin) requires SharePoint admin PowerShell: Set-SPOSite -Identity <url> -Owner <email>GET /v1.0/sites?search=*&$select=id,displayName,webUrl,createdDateTimeGET /v1.0/sites/{siteId}/drives?$select=id,name,driveType,quotaGET /v1.0/drives/{driveId}/root/children?$select=id,name,size,lastModifiedDateTime,webUrlGET /items/{id}/permissionsGET /users/{id}/memberOf/inviteBefore offboarding, identify files the user owns that are widely shared:
GET /v1.0/users/{userId}/drive/root/search(q='*')?$select=id,name,permissions,parentReferenceLook for items with scope: anonymous sharing links — these should be cleaned up or ownership transferred.
Check users approaching quota limits:
GET /v1.0/users/{userId}/drive?$select=quotaIf quota.state is nearing (>80%) or critical (>90%), alert for cleanup or quota increase.
| Error | Cause | Resolution |
|---|---|---|
itemNotFound | File or folder doesn't exist | Check path or item ID |
accessDenied | No Files.Read permission | Grant permission and admin consent |
quotaLimitReached | OneDrive full | Clean up or expand quota |
sharingDisabled | Tenant sharing policy blocks external | Review SharePoint admin settings |
| Task | Microsoft Graph Permission |
|---|---|
| Read user's files | Files.Read.All |
| Read/write files | Files.ReadWrite.All |
| Read SharePoint sites | Sites.Read.All |
| Manage sharing | Files.ReadWrite.All |
| SharePoint admin | Sites.ReadWrite.All |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.