Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
scim-patch-with-remove
Advanced tools
This is pre patch version exists only before changes will be merged into the main package
RFC7644 SCIM(System for Cross-domain Identity Management) 2.0 implementation of the "Modifying with PATCH" section 3.5.2.
Important things to know, this library can :
Want to have an example on how it works, check this example.
This library is implementing the 3.5.2. Modifying with PATCH
chapter of the SCIM RFC https://tools.ietf.org/html/rfc7644#section-3.5.2.
It will allow you to create a SCIM resources and to patch them using the SCIM Query language.
import { patchBodyValidation } from 'scim-patch';
const scimBody: ScimPatchOperation = {
schemas: ['urn:ietf:params:scim:api:messages:2.0:PatchOp'],
Operations: [
{ op: 'replace', path: 'name.familyName', value: 'newFamilyName' },
],
};
try {
patchBodyValidation(scimBody);
} catch (error) {
// Here if there are an error in you SCIM request.
}
This implements the PATCH of a SCIM object from a SCIM Query. You should create a valid SCIM resource by extending the ScimResource interface.
export interface ScimUser extends ScimResource {
schemas: ['urn:ietf:params:scim:schemas:core:2.0:User'];
userName: string;
name: {
familyName: string;
givenName: string;
};
active: boolean;
emails: Array<{
value: string;
primary: boolean;
}>;
roles?: Array<{
value: string;
type?: string;
}>;
meta: ScimMeta & { resourceType: 'User' };
}
After you have created your object you can patch it by calling the scimPatch
operation.
const scimUser: ScimUser = {
schemas: ['urn:ietf:params:scim:schemas:core:2.0:User'],
userName: 'user1@test.com',
name: { familyName: 'user1', givenName: 'user2' },
active: true,
emails: [{ value: 'user1@test.com', primary: true }],
meta: { resourceType: 'User', created: new Date(), lastModified: new Date() },
};
const patch: ScimPatchOperation = { op: 'replace', value: { active: false } };
const patchedUser = scimPatch(scimUser, patch);
This particular operation will return :
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "user1@test.com",
"name": { "familyName": "user1", "givenName": "user2" },
"active": false,
"emails": [{ "value": "user1@test.com", "primary": true }],
"meta": {
"resourceType": "User",
"created": "2019-12-19T14:36:08.838Z",
"lastModified": "2019-12-19T14:36:08.838Z"
}
}
See the contributor's guide for some helpful tips.
FAQs
SCIM Patch operation (rfc7644).
We found that scim-patch-with-remove demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.