{"id":24093252,"url":"https://github.com/umd-lib/staffdirectory-ldap","last_synced_at":"2025-02-27T10:47:43.511Z","repository":{"id":46900400,"uuid":"202385188","full_name":"umd-lib/staffdirectory-ldap","owner":"umd-lib","description":"Application for generating Staff Directory Excel spreadsheet from LDAP","archived":false,"fork":false,"pushed_at":"2024-03-27T12:55:04.000Z","size":148,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-01-10T09:26:14.835Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/umd-lib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2019-08-14T16:14:16.000Z","updated_at":"2024-03-27T12:55:09.000Z","dependencies_parsed_at":"2024-03-27T14:04:48.428Z","dependency_job_id":null,"html_url":"https://github.com/umd-lib/staffdirectory-ldap","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/umd-lib%2Fstaffdirectory-ldap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umd-lib%2Fstaffdirectory-ldap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umd-lib%2Fstaffdirectory-ldap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umd-lib%2Fstaffdirectory-ldap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/umd-lib","download_url":"https://codeload.github.com/umd-lib/staffdirectory-ldap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241005367,"owners_count":19892780,"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":[],"created_at":"2025-01-10T09:26:36.595Z","updated_at":"2025-02-27T10:47:43.481Z","avatar_url":"https://github.com/umd-lib.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# staffdirectory-ldap\n\nJava application for generating output documents using Staff Directory\ndata retrieved from LDAP.\n\n## Application configuration\n\n### Google Sheets configuration\n\nThis application utilizes a Google Sheets document to provide data and\nconfiguration to the application.\n\nCommunication with Google requires a Google service account, and the\nprivate key file for the account must be accessible to the application.\n\nThe project associated with the service account must have the\n\"Google Sheets API\" enabled.\n\nAlso, the service account must have \"view\" permission to Google Sheets document\nbeing read. To do this, simply share the document with the email address\nspecified in the the \"client_email\" field of the private key file.\n\n### config.properties\n\nA \"config.properties\" file is used for specifying application configuration,\nincluding:\n\n* the LDAP connection information\n* the Google service account credentials file\n* the Google Sheets document to retrieve\n\nA sample \"config.properties.template\" file has been included in this repository.\n\nCopy the \"config.properties.template\" to \"config.properties\" and fill in the\nappropriate values.\n\n## Running the application\n\nThis application uses the Maven \"Application Assembler\" plugin\n(\u003chttps://www.mojohaus.org/appassembler/appassembler-maven-plugin/\u003e)\nto create executable scripts for running different commands.\n\nTo build the application, run:\n\n```\n\u003e mvn clean package appassembler:assemble\n```\n\nThis will create a \"target/appassembler\" directory containing the application\ncomponents.\n\n## Application Scripts\n\nThe following application scripts are available:\n\n* staff-retriever\n* all-staff-list-builder\n* drupal-builder\n\n### staff-retriever\n\nRetrieves the \"Online Staff Directory Mapping\" Google Sheets document from\nGoogle Drive, and creates a JSON file consisting of staff directory information\nobtained from LDAP, and the Google Sheets document.\n\nThis script uses the following sheets in the Google Drive document:\n\n* Staff\n* Organization\n\nSee [docs/StaffRetrieverInputDocument.md](docs/StaffRetrieverInputDocument.md)\nfor information on these sheets.\n\nTo run the script (from the project base directory):\n\n```\n\u003e target/appassembler/bin/staff-retriever --config \u003cCONFIG FILE\u003e --output \u003cJSON OUTPUT FILE\u003e\n```\n\nwhere:\n\n* \\\u003cCONFIG FILE\u003e is the path to the configuration properties file\n* \\\u003cJSON OUTPUT FILE\u003e the path location to create the JSON output\n\nFor example, using\n\n* \\\u003cCONFIG FILE\u003e - \"config.properties\"\n* \\\u003cJSON OUTPUT FILE\u003e - \"persons.json\"\n\nthe command would be:\n\n```\n\u003e target/appassembler/bin/staff-retriever --config config.properties --output persons.json\n```\n\n### all-staff-list-builder\n\nThis script generates the \"All Staff List\" spreadsheet from the JSON file\ncreated by the \"staff-retriever\" script.\n\nThis script uses the following sheets in the Google Drive document:\n\n* All Staff List Mapping\n* CategoryStatus\n\nTo run the script (from the project base directory):\n\n```\n\u003e target/appassembler/bin/all-staff-list-builder --config \u003cCONFIG FILE\u003e --input \u003cJSON INPUT FILE\u003e --output \u003cEXCEL OUTPUT FILE\u003e\n```\n\nwhere:\n\n* \\\u003cCONFIG FILE\u003e is the path to the configuration properties file\n* \\\u003cJSON INPUT FILE\u003e the path location to the JSON file created by \"staff-retriever\"\n* \\\u003cEXCEL OUTPUT FILE\u003e the path location to create the Excel spreadsheet\n\nFor example, using\n\n* \\\u003cCONFIG FILE\u003e - \"config.properties\"\n* \\\u003cJSON INPUT FILE\u003e - \"persons.json\"\n* \\\u003cEXCEL OUTPUT FILE\u003e - \"All Staff List New.xlsx\"\n\nthe command would be:\n\n```\n\u003e target/appassembler/bin/all-staff-list-builder --config config.properties --input persons.json --output \"All Staff List New.xlsx\"\n```\n\n### drupal-builder\n\nThis script generates a JSON file for uploading to Drupal, that Drupal then\nuses to update its Staff Directory entries.\n\nThis script uses the following sheets in the Google Drive document:\n\n* Drupal Mapping\n\nTo run the script (from the project base directory):\n\n```\n\u003e target/appassembler/bin/drupal-builder --config \u003cCONFIG FILE\u003e --input \u003cJSON INPUT FILE\u003e --output \u003cJSON OUTPUT FILE\u003e\n```\n\nwhere:\n\n* \\\u003cCONFIG FILE\u003e is the path to the configuration properties file\n* \\\u003cJSON INPUT FILE\u003e the path location to the JSON file created by \"staff-retriever\"\n* \\\u003cJSON OUTPUT FILE\u003e the path location for the output JSON file to upload to Drupal\n\nFor example, using\n\n* \\\u003cCONFIG FILE\u003e - \"config.properties\"\n* \\\u003cJSON INPUT FILE\u003e - \"persons.json\"\n* \\\u003cJSON OUTPUT FILE\u003e - \"drupal.json\"\n\nthe command would be:\n\n```\n\u003e target/appassembler/bin/all-staff-list-builder --config config.properties --input persons.json --output drupal.json\n```\n\n## Document Mappings\n\nSee [docs/OutputDocumentMapping.md](docs/OutputDocumentMapping.md) for\ninformation on using the Google Sheets document for specifying the display of\nfields in the output document.\n\n## Dockerfile-staffdir-cron and Kubernetes\n\nThe \"Dockerfile-staffdir-cron\" creates a Docker image for use with the\n[umd-lib/k8s-staffdirectory-ldap][k8s-staffdirectory-ldap] Kubernetes\nconfiguration.\n\nThe scripts used by CronJob are in the \"docker_config/staffdirectory-ldap\"\ndirectory.\n\n## License\n\nSee the [LICENSE](LICENSE.txt) file for license rights and limitations.\n\n[k8s-staffdirectory-ldap]: https://github.com/umd-lib/k8s-staffdirectory-ldap\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumd-lib%2Fstaffdirectory-ldap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumd-lib%2Fstaffdirectory-ldap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumd-lib%2Fstaffdirectory-ldap/lists"}