{"id":22442156,"url":"https://github.com/colinbut/exclusion-service","last_synced_at":"2026-04-18T02:03:07.241Z","repository":{"id":69158159,"uuid":"121496559","full_name":"colinbut/exclusion-service","owner":"colinbut","description":"A microservice that manages a blacklist of excluded users - Java - JAX-RS - Jetty - Jedis","archived":false,"fork":false,"pushed_at":"2018-03-03T22:48:12.000Z","size":146,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T10:16:44.673Z","etag":null,"topics":["docker","docker-compose","java","jax-rs","jedis","jersey","jetty","microservice","redis"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/colinbut.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-14T10:12:46.000Z","updated_at":"2018-03-03T21:12:39.000Z","dependencies_parsed_at":"2023-03-15T17:45:37.089Z","dependency_job_id":null,"html_url":"https://github.com/colinbut/exclusion-service","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/colinbut/exclusion-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colinbut%2Fexclusion-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colinbut%2Fexclusion-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colinbut%2Fexclusion-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colinbut%2Fexclusion-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/colinbut","download_url":"https://codeload.github.com/colinbut/exclusion-service/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colinbut%2Fexclusion-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31953515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["docker","docker-compose","java","jax-rs","jedis","jersey","jetty","microservice","redis"],"created_at":"2024-12-06T02:18:18.304Z","updated_at":"2026-04-18T02:03:07.227Z","avatar_url":"https://github.com/colinbut.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Exclusion Service\n\n[![Build Status](https://travis-ci.org/colinbut/exclusion-service.svg?branch=master)](https://travis-ci.org/colinbut/exclusion-service)\n\n\n## Table of Contents\n\n- [Summary](#summary)\n- [Overview](#overview)\n- [Usage](#usage)\n- [Deployment](#deployment)\n    - [Local](#local)\n        - [Web Container - Explode War Deployment](#web-container-explode-war-deployment)\n        - [Maven Jetty Plugin - mvn jetty:run](#maven-jetty-plugin-run)\n        - [Maven Jetty Plugin - mvn jetty:run-forked](#maven-jetty-plugin-run-forked)\n        - [Containerization - Docker](#docker)\n    - [QA](#qa)\n    - [Staging](#staging)\n    - [Production](#production)\n\n### \u003ca name=\"summary\"\u003e\u003c/a\u003e1. Summary \nA microservice that encapsulates a blacklist of excluded users.\n\n### \u003ca name=\"overview\"\u003e\u003c/a\u003e2. Overview\nBuilt with:\n\n- Java 7\n- JAXB\n- JAX-RS (Jersey as the implementation)\n- Jedis (a Redis client java library)\n- Jetty (a lightweight web server/container)\n\nMaven build tool. \n\nApplication is packaged up in a war file which then gets run in Jetty by using the maven jetty plugin.\n\n\nBuilt using vanilla Java with Java EE (J2EE)'s JAX-RS technology - using the reference implementation Jersey. It runs inside a Jetty server (a lightweight web container/server). Application connects to\nRedis datastore (NoSQL)\n\nBelow:\n\n![Image of technology diagram](etc/diagram.png)\n\n\n### \u003ca name=\"usage\"\u003e\u003c/a\u003e3. Usage\n\nHit the endpoint URL*:\n\n```\nhttp://localhost:8080/rest/exclusion/validate/1234566SSN/2018-01-01\n```\n\n*_the URL will be slightly different depending on how the microservice is deployed._\n\nYou should get back a response like:\n\n```xml\n\u003cEXCLUSION-RESOURCE\u003e\n    \u003cSTATUS-DESCRIPTION\u003eNOT BLACKLISTED\u003c/STATUS-DESCRIPTION\u003e\n\u003c/EXCLUSION-RESOURCE\u003e\n```\n\n### \u003ca name=\"deployment\"\u003e\u003c/a\u003e4. Deployment\n\nThis section details the different ways to deploy this microservice for usage\n\n#### \u003ca name=\"local\"\u003e\u003c/a\u003e4.1 Local\n\nThere are numerous ways to bring up this microservice locally.\n\n##### \u003ca name=\"web-container-explode-war-deployment\"\u003e\u003c/a\u003e4.1.1 Web Container - Explode War Deployment\n\nAfter building the artifact with `mvn clean install` - copy the built exclusion-service.war file\nto the deployment directory of the web container.\n\nfor example, if using Jetty:\n\ncopy `exclusion-service.war` to `/var/lib/jetty/webapps`\n\nor whereever the `webapps` folder is under the Jetty installation.\n\nstart Redis Server\n\nnote - using this method you would access the URL endpoint as:\n\n```\nhttp://localhost:8080/exclusion-service/rest/exclusion/validate/1234566SSN/2018-01-01\n```\n\n\n##### \u003ca name=\"maven-jetty-plugin-run\"\u003e\u003c/a\u003e4.1.2 Maven Jetty Plugin - mvn jetty:run\n\nto run:\n\nstart Redis Server. Then:\n\n```bash\nmvn -Djetty.http.port=[port number] jetty:run\n```\n\nwhere port number is a port you specify (by default its on port 8080 if you don't specify)\n\nnote, using this method you will need to manually set the following environment variables as it uses these env variables to specifiy connection details to Redis.\n\n- REDIS_HOST\n- REDIS_PORT\n\n##### \u003ca name=\"maven-jetty-plugin-run-forked\"\u003e\u003c/a\u003e4.1.3 Maven Jetty Plugin - mvn jetty:run-forked\n\nstart Redis Server. Then:\n\nsimilar to above command but...\n\n```bash\nmvn -Djetty.http.port=[port number] jetty:run-forked\n```\n\nwith this method, the 2 environment variables are already configured in the `pom.xml` \n\n##### \u003ca name=\"docker\"\u003e\u003c/a\u003e4.1.4 Containerization - Docker\n\nUsing both Docker and Docker Compose you can bring up this microservice easily.\nThis deployment method is the way used in QA/Staging. So therefore you can do this way as well\nto mimic the deployment setup on your local Dev environment as if it was a (QA/Staging) Test Environment.\n\n```bash\nchmod +x; ./install.sh\ncd docker\ndocker-compose up\n```\n\n\n#### \u003ca name=\"qa\"\u003e\u003c/a\u003e4.2 QA\n\n[TBD]\n#### \u003ca name=\"staging\"\u003e\u003c/a\u003e4.3 Staging\n\n[TBD]\n#### \u003ca name=\"production\"\u003e\u003c/a\u003e4.4 Production\n\n[TBD]\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcolinbut%2Fexclusion-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcolinbut%2Fexclusion-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcolinbut%2Fexclusion-service/lists"}