{"id":22494522,"url":"https://github.com/hiperium/city-sectors","last_synced_at":"2026-04-10T12:01:50.645Z","repository":{"id":249430544,"uuid":"831242821","full_name":"hiperium/city-sectors","owner":"hiperium","description":"Administration module for Smart Cities information and configuration for the Hiperium Project.","archived":false,"fork":false,"pushed_at":"2024-12-26T14:07:11.000Z","size":755,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T20:49:05.673Z","etag":null,"topics":["aws-dynamodb","aws-lambda","aws-sam","docker","graalvm","java","localstack","maven","shell-scripts","spring-boot","spring-cloud-function","spring-native","testcontainers"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hiperium.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-20T02:54:06.000Z","updated_at":"2024-12-26T14:07:15.000Z","dependencies_parsed_at":"2024-08-23T23:32:48.025Z","dependency_job_id":"955924fb-2f3f-4fe2-81ae-5616ccf6bed1","html_url":"https://github.com/hiperium/city-sectors","commit_stats":null,"previous_names":["hiperium/city-admin","hiperium/city-sectors"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hiperium/city-sectors","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiperium%2Fcity-sectors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiperium%2Fcity-sectors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiperium%2Fcity-sectors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiperium%2Fcity-sectors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hiperium","download_url":"https://codeload.github.com/hiperium/city-sectors/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiperium%2Fcity-sectors/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31641492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["aws-dynamodb","aws-lambda","aws-sam","docker","graalvm","java","localstack","maven","shell-scripts","spring-boot","spring-cloud-function","spring-native","testcontainers"],"created_at":"2024-12-06T19:11:30.180Z","updated_at":"2026-04-10T12:01:50.628Z","avatar_url":"https://github.com/hiperium.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Hiperium City Management.\n\n* **Author**: [Andres Solorzano](https://www.linkedin.com/in/aosolorzano/).\n* **Level**: 300 - Senior.\n* **Technologies**: GraalVM, Spring Boot, Spring Cloud, Spring Native, Spring Modulith, Docker, Testcontainers, LocalStack, Amazon DynamoDB, AWS Lambda, and AWS SAM.\n\n![](utils/img/solution_architecture_diagram.png)\n\n---\n### Description.\nThis project uses Spring Cloud Functions to create an AWS Lambda Function for the Hiperium City Management module.\n\n---\n### Prerequisites.\n- Git.\n- AWS SAM CLI.\n- GraalVM with OpenJDK (version 21.+). You can use SDKMAN.\n- Apache Maven. You can install it using SDKMAN.\n- Docker Engine with the Compose Plugin.\n\n---\n### Project Structure.\nThe project is divided into the following files/directories:\n\n- **functions**: Directory used Lambda functions.\n- **utils**: Directory used for script files and other project documentation.\n\n---\n### GraalVM Tracing Agent.\nThe Tracing Agent monitors our application’s behavior to see what classes, methods, and resources are being accessed dynamically. \nThen, it outputs configuration files that describe this dynamic behavior. \nThese config files can be provided to the native-image utility when building a native image. \nFirst, execute the following command from the `project's root` directory to start the application with the Tracing Agent:\n    \n```bash\nmvn clean process-classes                    \\\n    -f functions/city-read-function/pom.xml  \\\n    -P tracing-agent\n```\n\nThen, navigate to the `functions/city-read-function/src/test/http/local.http` file, and execute the requests \nto the deployed function.\n\nAt this point, the Tracing Agent will generate the necessary configuration files for the native-image utility.\nYou can exit the application after the request is completed by pressing `Ctrl+C`.\nFinally, copy the output files into the `META-INF/native-image` directory to be included by the native-image utility:\n```bash\ncp -rf functions/city-read-function/target/native-image/* \\\n       functions/city-read-function/src/main/resources/META-INF/native-image\n```\n\nAfter this, you can build the native image using as usual and make tests with the AWS Lambda Function.\n\n---\n### Deployment Options.\nSo far, we have only one deployment option for the Lambda Function as this project is in development.\nThis option is using SAM CLI to deploy the Lambda Function to AWS.\nYou can execute the following script to show you the deployment options:\n```bash\n./setup.sh\n```\n\nSelect the default option to deploy the Lambda Function to AWS.\n\n---\n### Maven Parent overrides\n\nDue to Maven's design, elements are inherited from the parent POM to the project POM.\nWhile most of the inheritance is fine, it also inherits unwanted elements like `\u003clicense\u003e` and `\u003cdevelopers\u003e` from the parent.\nTo prevent this, the project POM contains empty overrides for these elements.\nIf you manually switch to a different parent and actually want the inheritance, you need to remove those overrides.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhiperium%2Fcity-sectors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhiperium%2Fcity-sectors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhiperium%2Fcity-sectors/lists"}