{"id":18348771,"url":"https://github.com/cloudstek/scim-filter-parser","last_synced_at":"2025-10-23T16:30:06.633Z","repository":{"id":56954181,"uuid":"262184554","full_name":"Cloudstek/scim-filter-parser","owner":"Cloudstek","description":"Parser for the SCIM (IETF RFC 7644, System for Cross-domain Identity Management) filter language.","archived":false,"fork":false,"pushed_at":"2024-05-30T13:37:06.000Z","size":103,"stargazers_count":8,"open_issues_count":6,"forks_count":4,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-20T01:42:04.137Z","etag":null,"topics":["parser","scim","scim-filter"],"latest_commit_sha":null,"homepage":"https://cloudstek.github.io/scim-filter-parser-docs/index.html","language":"PHP","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/Cloudstek.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":null,"support":null}},"created_at":"2020-05-08T00:01:42.000Z","updated_at":"2024-07-08T14:30:54.000Z","dependencies_parsed_at":"2023-02-16T22:00:58.873Z","dependency_job_id":null,"html_url":"https://github.com/Cloudstek/scim-filter-parser","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cloudstek%2Fscim-filter-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cloudstek%2Fscim-filter-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cloudstek%2Fscim-filter-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cloudstek%2Fscim-filter-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cloudstek","download_url":"https://codeload.github.com/Cloudstek/scim-filter-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247463745,"owners_count":20942935,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["parser","scim","scim-filter"],"created_at":"2024-11-05T21:19:11.910Z","updated_at":"2025-10-23T16:30:06.506Z","avatar_url":"https://github.com/Cloudstek.png","language":"PHP","readme":"# SCIM Filter Parser\n\u003e Parser for the SCIM ([IETF RFC 7644, System for Cross-domain Identity Management](https://tools.ietf.org/html/rfc7644)) filter syntax.\n\n[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/Cloudstek/scim-filter-parser/PHPunit%20Tests)](https://github.com/Cloudstek/scim-filter-parser/actions) [![Coverage Status](https://coveralls.io/repos/github/Cloudstek/scim-filter-parser/badge.svg?branch=master)](https://coveralls.io/github/Cloudstek/scim-filter-parser?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/Cloudstek/scim-filter-parser/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/Cloudstek/scim-filter-parser/?branch=master) ![GitHub](https://img.shields.io/github/license/Cloudstek/scim-filter-parser) [![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/Cloudstek/scim-filter-parser?label=latest\u0026sort=semver)](https://github.com/Cloudstek/scim-filter-parser/releases) [![Packagist Downloads](https://img.shields.io/packagist/dt/cloudstek/scim-filter-parser)](https://packagist.org/packages/cloudstek/scim-filter-parser) [![Packagist Stars](https://img.shields.io/packagist/stars/cloudstek/scim-filter-parser)](https://packagist.org/packages/cloudstek/scim-filter-parser)\n\n## Installation\n\nThis library is available as [composer](https://getcomposer.org/) package and this is the recommended way to install this library.\n\n```sh\n$ composer require cloudstek/scim-filter-parser\n```\n\n#### Manual installation\n\nIf you don't use composer, you can install this library manually using the following steps:\n\n1. Clone this repository or download the latest release from the [releases page](https://github.com/Cloudstek/scim-filter-parser/releases).\n2. Require all files manually or use a PSR-4 autoloader (recommended).\n\n## Usage\n\nAs code often says more than a thousand words, a little code to get you started.\n\n```php\n\u003c?php\n\nuse Cloudstek\\SCIM\\FilterParser\\FilterParser;\n\n// Create the filter parser.\n$filterParser = new FilterParser();\n\n// Parse a filter string\n$firstFilterAst = $filterParser-\u003eparse('userName eq \"foobar\"'); // Cloudstek\\SCIM\\FilterParser\\AST\\Comparison ...\n\n// ... walk through the AST (abstract syntax tree) and do something with it.\n\n// The parser is stateless so you can safely parse another filter if you like.\n$secondFilterAst = $filterParser-\u003eparse('name[given eq \"John\" and family eq \"Dough\"]'); // Cloudstek\\SCIM\\FilterParser\\AST\\ValuePath ...\n\n// Create the path parser.\n$pathParser = new PathParser();\n\n// Parse a path string, used in for example PATCH operations.\n$pathAst = $pathParser-\u003eparse('name[given eq \"John\"].familyName'); // Cloudstek\\SCIM\\FilterParser\\AST\\ValuePath ...\n```\n\n## Issues\n\nPlease report issues on the projects [GitHub issues page](https://github.com/Cloudstek/scim-filter-parser/issues) and be sure to include information about your PHP version, library version, filter string and resulting AST.\n\n## Known limitations\n\nAt the moment there are a few limitations to be aware of, though in the future these may be addressed.\n\n* Does not support SCIM v1.0 (only v2)\n* Does not come with a \"dumper\" to provide a nice textual representation of the AST. Instead you can use [`var_dump`](https://www.php.net/manual/en/function.var-dump.php) or [`VarDumper`](https://symfony.com/doc/current/components/var_dumper.html).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudstek%2Fscim-filter-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudstek%2Fscim-filter-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudstek%2Fscim-filter-parser/lists"}