├── .gitignore ├── CRUD_Examples.md ├── Decrypt.java ├── Encrypt.java ├── LICENSE ├── LLM_Testing.md ├── README.md ├── application-dev.properties ├── application-prod.properties ├── application-staging.properties ├── application.properties ├── compile ├── database ├── README.md ├── ai-sb324-new.sql ├── ai-sb324.sql ├── exportdb └── importdb ├── decrypt ├── diagrams ├── Import-API-Into-Postman-1.jpg ├── Import-API-Into-Postman-3.jpg ├── Import-API-into-Postman-0.jpg ├── Import-API-into-Postman-2.jpg ├── MS-Cache-Swagger-UI.jpg ├── MS-Pkg-Structure.jpg ├── MS-Property-File.jpg ├── MS-Run-Result.jpg ├── Password-Gen.jpg ├── ai │ ├── AI-Models.jpg │ ├── AI-Models.png │ ├── Ai-Ex-Content-Moderation.jpg │ ├── Ai-Ex-DataExtractor.jpg │ ├── Ai-Ex-RAG-OZO-1.jpg │ ├── Ai-Ex-RAG-OZO-2.jpg │ ├── Ai-Ex-RAG-OZO-3.jpg │ ├── Ai-Ex-Senti-output.txt │ ├── Ai-Ex-Sentiment-2.jpg │ ├── Ai-Ex-Sentiment.jpg │ ├── Ai-Ollama-llms.jpg │ ├── Ai-Prompt.jpg │ ├── ai-senti-1.txt │ ├── ai-senti-2.txt │ ├── ai-senti-3.txt │ ├── architecture │ │ └── Ai-Transformer-Arch.jpg │ ├── code │ │ ├── Ai-Code-Assistant-2.jpg │ │ ├── Ai-Code-Assistant-3.jpg │ │ ├── Ai-Code-Assistant-Car-Rental-Service.jpg │ │ ├── Ai-Code-Assistant-Chef-Restaurant.jpg │ │ ├── Ai-Code-Assistant-Data-Extractor.jpg │ │ ├── Ai-Code-Assistant-Health-Care.jpg │ │ ├── Ai-Code-Assistant-Langauge-2.jpg │ │ ├── Ai-Code-Assistant-Langauge.jpg │ │ ├── Ai-Code-Assistant-Model-Extractor.jpg │ │ ├── Ai-Code-Assistant-Moderate.jpg │ │ ├── Ai-Code-Assistant-Sentiment.jpg │ │ ├── Ai-Code-Assistant.jpg │ │ ├── Ai-Code-CLM-1.jpg │ │ ├── Ai-Code-CLM-2.jpg │ │ ├── Ai-Code-CLM-3.jpg │ │ ├── Ai-Code-CLM-4.jpg │ │ ├── Ai-Code-Config-1.jpg │ │ ├── Ai-Code-Config-2.jpg │ │ ├── Ai-Code-Config-3.jpg │ │ ├── Ai-Code-Config-4.jpg │ │ ├── Ai-Code-Image-Model.jpg │ │ └── Ai-Code-Moderation-Model.jpg │ └── diagrams │ │ ├── Ai-Case-Study-Architecture.jpg │ │ ├── Ai-Code-Base.jpg │ │ └── Ai-RAG-Architecture.jpg ├── code │ ├── MS-Exceptions-1.png │ ├── MS-Exceptions-2-Security.png │ ├── MS-Exceptions-3-Database.png │ ├── MS-Exceptions-4-Database.png │ ├── MS-Exceptions-5-Business-Controller.png │ ├── MS-Filters-1.png │ ├── MS-Filters-2-Security.png │ ├── MS-Filters-3-Security.png │ ├── MS-Logging.png │ ├── MS-Security-1.png │ ├── MS-Security-2.png │ ├── MS-Security-JWT-0.png │ ├── MS-Security-JWT-1.png │ ├── MS-Security-JWT-2.png │ ├── MS-Security-JWT-4.png │ ├── MS-Security-JWT-5.png │ ├── MS-Security-JWT-Create-1.png │ ├── MS-Security-JWT-Create-2.png │ ├── MS-Security-JWT-Create-3.png │ ├── MS-Security-Validations-1.png │ ├── MS-Security-Validations-2.png │ └── MS-Security-Validations-3.png ├── crud │ ├── crud-1-get-fallback.jpg │ ├── crud-2-post-prod-1-A.jpg │ ├── crud-2-post-prod-1-B.jpg │ ├── crud-3-post-prod-2.jpg │ ├── crud-4-post-prod-3.jpg │ ├── crud-5-get-from-db.jpg │ ├── crud-6-get-from-db.jpg │ ├── crud-7-put-update-price.jpg │ ├── crud-8-put-deactivate.jpg │ ├── crud-9-db-records.jpg │ ├── crud-error-1-post-invalid-input-A.jpg │ ├── crud-error-1-post-invalid-input-B.jpg │ ├── crud-error-2-post-invalid-input-A.jpg │ ├── crud-error-2-post-invalid-input-B.jpg │ └── crud-error-3-post-Version-Mismatch-B.jpg ├── encrypt │ ├── Security-Encryption-pro.jpg │ ├── Security-H2-psd.jpg │ └── Security-PostgreSQL-psd.jpg ├── langchain4j-components.jpg ├── langchain4j-components.png ├── log │ ├── Log-Messages-1.jpg │ └── Log-Messages-2.jpg ├── ms-cache-code-base.jpg ├── ms-cache-with-Test-Tokens-2.jpg ├── ms-cache-with-Test-Tokens-3.jpg ├── ms-cache-with-Test-Tokens.jpg └── tokens │ ├── MS-JWT-Auth-Token.png │ ├── MS-JWT-Refresh-Token.png │ └── MS-JWT-Tx-Token.png ├── downloaded_image-conf.jpg ├── encrypt ├── generateBuildNumber ├── getServiceName ├── jenkinsfile ├── jmeter ├── New-Test-Case.jmx ├── README.MD ├── diagrams │ ├── Jmeter-Result.png │ └── Jmeter-Run.jpg ├── jmoutput-2023-06-20-13-27-20 │ ├── content │ │ ├── css │ │ │ ├── dashboard.css │ │ │ ├── jquery-ui.min.css │ │ │ ├── jquery-ui.structure.min.css │ │ │ ├── jquery-ui.theme.min.css │ │ │ ├── legends.css │ │ │ └── theme.blue.css │ │ ├── js │ │ │ ├── curvedLines.js │ │ │ ├── customGraph.js │ │ │ ├── dashboard-commons.js │ │ │ ├── dashboard.js │ │ │ ├── graph.js │ │ │ ├── hashtable.js │ │ │ ├── jquery-ui.min.js │ │ │ ├── jquery.cookie.js │ │ │ ├── jquery.flot.stack.js │ │ │ ├── jquery.numberformatter-1.2.3.min.js │ │ │ └── jquery.tablesorter.min.js │ │ └── pages │ │ │ ├── CustomsGraphs.html │ │ │ ├── OverTime.html │ │ │ ├── ResponseTimes.html │ │ │ ├── Throughput.html │ │ │ └── icon-apache.png │ ├── index.html │ ├── sbadmin2-1.0.7 │ │ ├── README.md │ │ ├── bower.json │ │ ├── bower_components │ │ │ ├── bootstrap │ │ │ │ ├── .bower.json │ │ │ │ ├── README.md │ │ │ │ └── dist │ │ │ │ │ ├── css │ │ │ │ │ └── bootstrap.min.css │ │ │ │ │ ├── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ │ └── js │ │ │ │ │ └── bootstrap.min.js │ │ │ ├── flot-axislabels │ │ │ │ ├── .bower.json │ │ │ │ ├── README.md │ │ │ │ └── jquery.flot.axislabels.js │ │ │ ├── flot.tooltip │ │ │ │ ├── .bower.json │ │ │ │ ├── bower.json │ │ │ │ └── js │ │ │ │ │ ├── excanvas.min.js │ │ │ │ │ ├── jquery.flot.js │ │ │ │ │ ├── jquery.flot.tooltip.js │ │ │ │ │ ├── jquery.flot.tooltip.min.js │ │ │ │ │ └── jquery.flot.tooltip.source.js │ │ │ ├── flot │ │ │ │ ├── .bower.json │ │ │ │ ├── .travis.yml │ │ │ │ ├── API.md │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── FAQ.md │ │ │ │ ├── Makefile │ │ │ │ ├── NEWS.md │ │ │ │ ├── PLUGINS.md │ │ │ │ ├── README.md │ │ │ │ ├── component.json │ │ │ │ ├── excanvas.js │ │ │ │ ├── excanvas.min.js │ │ │ │ ├── flot.jquery.json │ │ │ │ ├── jquery.colorhelpers.js │ │ │ │ ├── jquery.flot.canvas.js │ │ │ │ ├── jquery.flot.categories.js │ │ │ │ ├── jquery.flot.crosshair.js │ │ │ │ ├── jquery.flot.errorbars.js │ │ │ │ ├── jquery.flot.fillbetween.js │ │ │ │ ├── jquery.flot.image.js │ │ │ │ ├── jquery.flot.js │ │ │ │ ├── jquery.flot.navigate.js │ │ │ │ ├── jquery.flot.pie.js │ │ │ │ ├── jquery.flot.resize.js │ │ │ │ ├── jquery.flot.selection.js │ │ │ │ ├── jquery.flot.stack.js │ │ │ │ ├── jquery.flot.symbol.js │ │ │ │ ├── jquery.flot.threshold.js │ │ │ │ ├── jquery.flot.time.js │ │ │ │ └── package.json │ │ │ ├── font-awesome │ │ │ │ ├── .bower.json │ │ │ │ ├── .npmignore │ │ │ │ ├── bower.json │ │ │ │ ├── css │ │ │ │ │ ├── font-awesome.css │ │ │ │ │ └── font-awesome.min.css │ │ │ │ ├── fonts │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ └── fontawesome-webfont.woff │ │ │ │ ├── less │ │ │ │ │ ├── bordered-pulled.less │ │ │ │ │ ├── core.less │ │ │ │ │ ├── extras.less │ │ │ │ │ ├── fixed-width.less │ │ │ │ │ ├── font-awesome.less │ │ │ │ │ ├── icons.less │ │ │ │ │ ├── larger.less │ │ │ │ │ ├── list.less │ │ │ │ │ ├── mixins.less │ │ │ │ │ ├── path.less │ │ │ │ │ ├── rotated-flipped.less │ │ │ │ │ ├── spinning.less │ │ │ │ │ ├── stacked.less │ │ │ │ │ └── variables.less │ │ │ │ └── scss │ │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ │ ├── _core.scss │ │ │ │ │ ├── _extras.scss │ │ │ │ │ ├── _fixed-width.scss │ │ │ │ │ ├── _icons.scss │ │ │ │ │ ├── _larger.scss │ │ │ │ │ ├── _list.scss │ │ │ │ │ ├── _mixins.scss │ │ │ │ │ ├── _path.scss │ │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ │ ├── _spinning.scss │ │ │ │ │ ├── _stacked.scss │ │ │ │ │ ├── _variables.scss │ │ │ │ │ └── font-awesome.scss │ │ │ ├── jquery │ │ │ │ ├── .bower.json │ │ │ │ ├── bower.json │ │ │ │ └── dist │ │ │ │ │ ├── jquery.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ └── jquery.min.map │ │ │ └── metisMenu │ │ │ │ ├── .bower.json │ │ │ │ ├── README.md │ │ │ │ └── dist │ │ │ │ ├── metisMenu.min.css │ │ │ │ └── metisMenu.min.js │ │ ├── dist │ │ │ ├── css │ │ │ │ └── sb-admin-2.css │ │ │ └── js │ │ │ │ └── sb-admin-2.js │ │ └── less │ │ │ ├── mixins.less │ │ │ ├── sb-admin-2.less │ │ │ └── variables.less │ └── statistics.json ├── ms-sb-272-j8-2023-06-20-13-27-20.jtl ├── ms-sb-272-j8.jmx ├── results │ └── ms-sb-272.java-8.csv └── run ├── llms ├── README.md ├── README_LOCAL_LLMS.md ├── llama3 └── mistral ├── loc ├── logback-spring-appenders-json-logstash.xml ├── logback-spring-appenders-json.xml ├── logback-spring-appenders-text.xml ├── logback-spring-scope.xml ├── logback-spring.xml ├── multi-user-chat-memory.db ├── mvnw ├── mvnw.cmd ├── pom.xml ├── postman └── MS-Cache Service.postman_collection.json ├── publicKey.pem ├── run ├── src ├── docker │ ├── Dockerfile │ ├── README.MD │ ├── application-dev.properties │ ├── application-prod.properties │ ├── application-staging.properties │ ├── application.properties │ ├── build │ ├── logs │ ├── mock-service.cid.old │ ├── ms-cache-service.cid.old │ ├── push │ ├── scan │ ├── shell │ ├── shellrun │ ├── start │ ├── startService │ ├── stats │ └── stop └── main │ ├── java │ └── io │ │ └── fusion │ │ └── air │ │ └── microservice │ │ ├── ServiceBootStrap.java │ │ ├── adapters │ │ ├── aop │ │ │ ├── AuthorizeRequestAspect.java │ │ │ ├── ExceptionHandlerAdvice.java │ │ │ ├── InputValidatorAdvice.java │ │ │ └── TimeTrackerAspect.java │ │ ├── controllers │ │ │ ├── open │ │ │ │ └── ProductControllerImpl.java │ │ │ └── secured │ │ │ │ └── PaymentControllerImpl.java │ │ ├── external │ │ │ ├── AppExternalServiceImpl.java │ │ │ └── RestClientService.java │ │ ├── filters │ │ │ ├── HeaderManager.java │ │ │ ├── JwtAuthFilter.java │ │ │ ├── LogFilter.java │ │ │ └── SecurityFilter.java │ │ ├── repository │ │ │ ├── ChatMessageRepository.java │ │ │ ├── CountryRepository.java │ │ │ └── ProductRepository.java │ │ ├── security │ │ │ ├── core │ │ │ │ ├── UserRole.java │ │ │ │ └── WebSecurityConfiguration.java │ │ │ ├── jwt │ │ │ │ ├── AuthorizationRequired.java │ │ │ │ ├── ClaimsManager.java │ │ │ │ ├── SingleTokenAuthorizationRequired.java │ │ │ │ ├── UserTokenAuthorization.java │ │ │ │ └── ValidateRefreshToken.java │ │ │ └── service │ │ │ │ ├── AuthKeyCloakService.java │ │ │ │ ├── AuthLocalService.java │ │ │ │ └── UserDetailsServiceImpl.java │ │ └── service │ │ │ ├── ChatMessageServiceImpl.java │ │ │ ├── CountryServiceImpl.java │ │ │ ├── ProductServiceImpl.java │ │ │ └── UserServiceImpl.java │ │ ├── ai │ │ ├── genai │ │ │ ├── controllers │ │ │ │ ├── AbstractAiController.java │ │ │ │ ├── AiOllamaControllerImpl.java │ │ │ │ └── AiOpenAiControllerImpl.java │ │ │ ├── core │ │ │ │ ├── assistants │ │ │ │ │ ├── Assistant.java │ │ │ │ │ ├── CarRentalAssistant.java │ │ │ │ │ ├── ChefAssistant.java │ │ │ │ │ ├── DataExtractorAssistant.java │ │ │ │ │ ├── HAL9000Assistant.java │ │ │ │ │ ├── HealthCareAssistant.java │ │ │ │ │ ├── LanguageAssistant.java │ │ │ │ │ ├── ModerateAssistant.java │ │ │ │ │ ├── PatientDataExtractorAssistant.java │ │ │ │ │ └── SentimentAssistant.java │ │ │ │ ├── models │ │ │ │ │ ├── CustomerServiceCategory.java │ │ │ │ │ ├── CustomerServiceCategoryData.java │ │ │ │ │ ├── Patient.java │ │ │ │ │ ├── PatientRequest.java │ │ │ │ │ ├── Person.java │ │ │ │ │ ├── Recipe.java │ │ │ │ │ └── Sentiment.java │ │ │ │ ├── prompts │ │ │ │ │ ├── StructuredPromptDiagnosisDetails.java │ │ │ │ │ ├── StructuredPromptDiagnosisSummary.java │ │ │ │ │ ├── StructuredPromptFeelings.java │ │ │ │ │ ├── StructuredPromptPatientId.java │ │ │ │ │ ├── StructuredPromptPatientName.java │ │ │ │ │ └── StructuredPromptRecipe.java │ │ │ │ ├── services │ │ │ │ │ ├── ChatMemoryFileStore.java │ │ │ │ │ ├── ConsoleChatService.java │ │ │ │ │ ├── CustomDataAnalyzer.java │ │ │ │ │ ├── ImageBuilder.java │ │ │ │ │ ├── RAGBuilder.java │ │ │ │ │ ├── RAGHealthCareBuilder.java │ │ │ │ │ ├── RAGHealthCareService.java │ │ │ │ │ ├── SentimentAnalyzer.java │ │ │ │ │ └── TemplateManager.java │ │ │ │ └── tools │ │ │ │ │ ├── CalculatorTool.java │ │ │ │ │ └── DateTimeTool.java │ │ │ ├── examples │ │ │ │ ├── anthropic │ │ │ │ │ ├── _01_Hello_World.java │ │ │ │ │ ├── _02_Complex_World.java │ │ │ │ │ ├── _03_Custom_Data.java │ │ │ │ │ ├── _05_Prompt_Templates.java │ │ │ │ │ ├── _06_Tools_Example.java │ │ │ │ │ ├── _07_ChatMemory_Example.java │ │ │ │ │ ├── _08_FewShot_Example.java │ │ │ │ │ ├── _09_Translator_Example.java │ │ │ │ │ ├── _10_Sentiment_Analyzer_Example.java │ │ │ │ │ ├── _11_Data_Extractor_Example.java │ │ │ │ │ ├── _12_Persistent_ChatMemory_Store_Example.java │ │ │ │ │ ├── _51_RAG_Simple_Example.java │ │ │ │ │ ├── _52_RAG_Segments_Example.java │ │ │ │ │ ├── _53_RAG_Query_Compression_Example.java │ │ │ │ │ ├── _54_RAG_Query_Routing_Example.java │ │ │ │ │ ├── _55_RAG_ReRanking_Example.java │ │ │ │ │ ├── _56_RAG_Meta_Data_Example.java │ │ │ │ │ ├── _57_RAG_Multiple_Content_Retrievers_Example.java │ │ │ │ │ ├── _58_RAG_Skip_Retrieval_Example.java │ │ │ │ │ └── _59_RAG_HealthCare_Example.java │ │ │ │ ├── falcon │ │ │ │ │ ├── _01_Hello_World.java │ │ │ │ │ ├── _02_Complex_World.java │ │ │ │ │ ├── _03_Custom_Data.java │ │ │ │ │ ├── _05_Prompt_Templates.java │ │ │ │ │ ├── _06_Tools_Example.java │ │ │ │ │ ├── _07_ChatMemory_Example.java │ │ │ │ │ ├── _08_FewShot_Example.java │ │ │ │ │ ├── _09_Translator_Example.java │ │ │ │ │ ├── _10_Sentiment_Analyzer_Example.java │ │ │ │ │ ├── _11_Data_Extractor_Example.java │ │ │ │ │ ├── _12_Persistent_ChatMemory_Store_Example.java │ │ │ │ │ ├── _51_RAG_Simple_Example.java │ │ │ │ │ ├── _52_RAG_Segments_Example.java │ │ │ │ │ ├── _53_RAG_Query_Compression_Example.java │ │ │ │ │ ├── _54_RAG_Query_Routing_Example.java │ │ │ │ │ ├── _55_RAG_ReRanking_Example.java │ │ │ │ │ ├── _56_RAG_Meta_Data_Example.java │ │ │ │ │ ├── _57_RAG_Multiple_Content_Retrievers_Example.java │ │ │ │ │ ├── _58_RAG_Skip_Retrieval_Example.java │ │ │ │ │ └── _59_RAG_HealthCare_Example.java │ │ │ │ ├── gemini │ │ │ │ │ ├── _01_Hello_World.java │ │ │ │ │ ├── _02_Complex_World.java │ │ │ │ │ ├── _03_Custom_Data.java │ │ │ │ │ ├── _05_Prompt_Templates.java │ │ │ │ │ ├── _06_Tools_Example.java │ │ │ │ │ ├── _07_ChatMemory_Example.java │ │ │ │ │ ├── _08_FewShot_Example.java │ │ │ │ │ ├── _09_Translator_Example.java │ │ │ │ │ ├── _10_Sentiment_Analyzer_Example.java │ │ │ │ │ ├── _11_Data_Extractor_Example.java │ │ │ │ │ ├── _12_Persistent_ChatMemory_Store_Example.java │ │ │ │ │ ├── _51_RAG_Simple_Example.java │ │ │ │ │ ├── _52_RAG_Segments_Example.java │ │ │ │ │ ├── _53_RAG_Query_Compression_Example.java │ │ │ │ │ ├── _54_RAG_Query_Routing_Example.java │ │ │ │ │ ├── _55_RAG_ReRanking_Example.java │ │ │ │ │ ├── _56_RAG_Meta_Data_Example.java │ │ │ │ │ ├── _57_RAG_Multiple_Content_Retrievers_Example.java │ │ │ │ │ ├── _58_RAG_Skip_Retrieval_Example.java │ │ │ │ │ └── _59_RAG_HealthCare_Example.java │ │ │ │ ├── gemma │ │ │ │ │ ├── _01_Hello_World.java │ │ │ │ │ ├── _02_Complex_World.java │ │ │ │ │ ├── _03_Custom_Data.java │ │ │ │ │ ├── _05_Prompt_Templates.java │ │ │ │ │ ├── _06_Tools_Example.java │ │ │ │ │ ├── _07_ChatMemory_Example.java │ │ │ │ │ ├── _08_FewShot_Example.java │ │ │ │ │ ├── _09_Translator_Example.java │ │ │ │ │ ├── _10_Sentiment_Analyzer_Example.java │ │ │ │ │ ├── _11_Data_Extractor_Example.java │ │ │ │ │ ├── _12_Persistent_ChatMemory_Store_Example.java │ │ │ │ │ ├── _51_RAG_Simple_Example.java │ │ │ │ │ ├── _52_RAG_Segments_Example.java │ │ │ │ │ ├── _53_RAG_Query_Compression_Example.java │ │ │ │ │ ├── _54_RAG_Query_Routing_Example.java │ │ │ │ │ ├── _55_RAG_ReRanking_Example.java │ │ │ │ │ ├── _56_RAG_Meta_Data_Example.java │ │ │ │ │ ├── _57_RAG_Multiple_Content_Retrievers_Example.java │ │ │ │ │ ├── _58_RAG_Skip_Retrieval_Example.java │ │ │ │ │ └── _59_RAG_HealthCare_Example.java │ │ │ │ ├── llama │ │ │ │ │ ├── _01_Hello_World.java │ │ │ │ │ ├── _02_Complex_World.java │ │ │ │ │ ├── _03_Custom_Data.java │ │ │ │ │ ├── _05_Prompt_Templates.java │ │ │ │ │ ├── _06_Tools_Example.java │ │ │ │ │ ├── _07_ChatMemory_Example.java │ │ │ │ │ ├── _08_FewShot_Example.java │ │ │ │ │ ├── _09_Translator_Example.java │ │ │ │ │ ├── _10_Sentiment_Analyzer_Example.java │ │ │ │ │ ├── _11_Data_Extractor_Example.java │ │ │ │ │ ├── _12_Persistent_ChatMemory_Store_Example.java │ │ │ │ │ ├── _51_RAG_Simple_Example.java │ │ │ │ │ ├── _52_RAG_Segments_Example.java │ │ │ │ │ ├── _53_RAG_Query_Compression_Example.java │ │ │ │ │ ├── _54_RAG_Query_Routing_Example.java │ │ │ │ │ ├── _55_RAG_ReRanking_Example.java │ │ │ │ │ ├── _56_RAG_Meta_Data_Example.java │ │ │ │ │ ├── _57_RAG_Multiple_Content_Retrievers_Example.java │ │ │ │ │ ├── _58_RAG_Skip_Retrieval_Example.java │ │ │ │ │ └── _59_RAG_HealthCare_Example.java │ │ │ │ ├── mistral │ │ │ │ │ ├── _01_Hello_World.java │ │ │ │ │ ├── _02_Complex_World.java │ │ │ │ │ ├── _03_Custom_Data.java │ │ │ │ │ ├── _05_Prompt_Templates.java │ │ │ │ │ ├── _06_Tools_Example.java │ │ │ │ │ ├── _07_ChatMemory_Example.java │ │ │ │ │ ├── _08_FewShot_Example.java │ │ │ │ │ ├── _09_Translator_Example.java │ │ │ │ │ ├── _10_Sentiment_Analyzer_Example.java │ │ │ │ │ ├── _11_Data_Extractor_Example.java │ │ │ │ │ ├── _12_Persistent_ChatMemory_Store_Example.java │ │ │ │ │ ├── _51_RAG_Simple_Example.java │ │ │ │ │ ├── _52_RAG_Segments_Example.java │ │ │ │ │ ├── _53_RAG_Query_Compression_Example.java │ │ │ │ │ ├── _54_RAG_Query_Routing_Example.java │ │ │ │ │ ├── _55_RAG_ReRanking_Example.java │ │ │ │ │ ├── _56_RAG_Meta_Data_Example.java │ │ │ │ │ ├── _57_RAG_Multiple_Content_Retrievers_Example.java │ │ │ │ │ ├── _58_RAG_Skip_Retrieval_Example.java │ │ │ │ │ └── _59_RAG_HealthCare_Example.java │ │ │ │ ├── openai │ │ │ │ │ ├── _01_Hello_World.java │ │ │ │ │ ├── _02_Complex_World.java │ │ │ │ │ ├── _03_Custom_Data.java │ │ │ │ │ ├── _04_Image_Data.java │ │ │ │ │ ├── _05_Prompt_Templates.java │ │ │ │ │ ├── _06_Tools_Example.java │ │ │ │ │ ├── _07_ChatMemory_Example.java │ │ │ │ │ ├── _08_FewShot_Example.java │ │ │ │ │ ├── _09_Translator_Example.java │ │ │ │ │ ├── _10_Sentiment_Analyzer_Example.java │ │ │ │ │ ├── _11_Data_Extractor_Example.java │ │ │ │ │ ├── _12_Persistent_ChatMemory_Store_Example.java │ │ │ │ │ ├── _13_Embedding_Example.java │ │ │ │ │ ├── _14_ModerateChat_Example.java │ │ │ │ │ ├── _15_TextClassification_Example.java │ │ │ │ │ ├── _51_RAG_Simple_Example.java │ │ │ │ │ ├── _52_RAG_Segments_Example.java │ │ │ │ │ ├── _53_RAG_Query_Compression_Example.java │ │ │ │ │ ├── _54_RAG_Query_Routing_Example.java │ │ │ │ │ ├── _55_RAG_ReRanking_Example.java │ │ │ │ │ ├── _56_RAG_Meta_Data_Example.java │ │ │ │ │ ├── _57_RAG_Multiple_Content_Retrievers_Example.java │ │ │ │ │ ├── _58_RAG_Skip_Retrieval_Example.java │ │ │ │ │ └── _59_RAG_HealthCare_Example.java │ │ │ │ ├── palm │ │ │ │ │ ├── _01_Hello_World.java │ │ │ │ │ ├── _02_Complex_World.java │ │ │ │ │ ├── _03_Custom_Data.java │ │ │ │ │ ├── _05_Prompt_Templates.java │ │ │ │ │ ├── _06_Tools_Example.java │ │ │ │ │ ├── _07_ChatMemory_Example.java │ │ │ │ │ ├── _08_FewShot_Example.java │ │ │ │ │ ├── _09_Translator_Example.java │ │ │ │ │ ├── _10_Sentiment_Analyzer_Example.java │ │ │ │ │ ├── _11_Data_Extractor_Example.java │ │ │ │ │ ├── _12_Persistent_ChatMemory_Store_Example.java │ │ │ │ │ ├── _51_RAG_Simple_Example.java │ │ │ │ │ ├── _52_RAG_Segments_Example.java │ │ │ │ │ ├── _53_RAG_Query_Compression_Example.java │ │ │ │ │ ├── _54_RAG_Query_Routing_Example.java │ │ │ │ │ ├── _55_RAG_ReRanking_Example.java │ │ │ │ │ ├── _56_RAG_Meta_Data_Example.java │ │ │ │ │ ├── _57_RAG_Multiple_Content_Retrievers_Example.java │ │ │ │ │ ├── _58_RAG_Skip_Retrieval_Example.java │ │ │ │ │ └── _59_RAG_HealthCare_Example.java │ │ │ │ ├── phi │ │ │ │ │ ├── _01_Hello_World.java │ │ │ │ │ ├── _02_Complex_World.java │ │ │ │ │ ├── _03_Custom_Data.java │ │ │ │ │ ├── _05_Prompt_Templates.java │ │ │ │ │ ├── _06_Tools_Example.java │ │ │ │ │ ├── _07_ChatMemory_Example.java │ │ │ │ │ ├── _08_FewShot_Example.java │ │ │ │ │ ├── _09_Translator_Example.java │ │ │ │ │ ├── _10_Sentiment_Analyzer_Example.java │ │ │ │ │ ├── _11_Data_Extractor_Example.java │ │ │ │ │ ├── _12_Persistent_ChatMemory_Store_Example.java │ │ │ │ │ ├── _51_RAG_Simple_Example.java │ │ │ │ │ ├── _52_RAG_Segments_Example.java │ │ │ │ │ ├── _53_RAG_Query_Compression_Example.java │ │ │ │ │ ├── _54_RAG_Query_Routing_Example.java │ │ │ │ │ ├── _55_RAG_ReRanking_Example.java │ │ │ │ │ ├── _56_RAG_Meta_Data_Example.java │ │ │ │ │ ├── _57_RAG_Multiple_Content_Retrievers_Example.java │ │ │ │ │ ├── _58_RAG_Skip_Retrieval_Example.java │ │ │ │ │ └── _59_RAG_HealthCare_Example.java │ │ │ │ ├── qwen │ │ │ │ │ ├── _01_Hello_World.java │ │ │ │ │ ├── _02_Complex_World.java │ │ │ │ │ ├── _03_Custom_Data.java │ │ │ │ │ ├── _05_Prompt_Templates.java │ │ │ │ │ ├── _06_Tools_Example.java │ │ │ │ │ ├── _07_ChatMemory_Example.java │ │ │ │ │ ├── _08_FewShot_Example.java │ │ │ │ │ ├── _09_Translator_Example.java │ │ │ │ │ ├── _10_Sentiment_Analyzer_Example.java │ │ │ │ │ ├── _11_Data_Extractor_Example.java │ │ │ │ │ ├── _12_Persistent_ChatMemory_Store_Example.java │ │ │ │ │ ├── _51_RAG_Simple_Example.java │ │ │ │ │ ├── _52_RAG_Segments_Example.java │ │ │ │ │ ├── _53_RAG_Query_Compression_Example.java │ │ │ │ │ ├── _54_RAG_Query_Routing_Example.java │ │ │ │ │ ├── _55_RAG_ReRanking_Example.java │ │ │ │ │ ├── _56_RAG_Meta_Data_Example.java │ │ │ │ │ ├── _57_RAG_Multiple_Content_Retrievers_Example.java │ │ │ │ │ ├── _58_RAG_Skip_Retrieval_Example.java │ │ │ │ │ └── _59_RAG_HealthCare_Example.java │ │ │ │ └── wizardmath │ │ │ │ │ ├── _01_Hello_World.java │ │ │ │ │ ├── _02_Algebra.java │ │ │ │ │ ├── _03_Geometry.java │ │ │ │ │ └── _04_Calculus.java │ │ │ └── utils │ │ │ │ ├── AiBeans.java │ │ │ │ ├── AiConstants.java │ │ │ │ ├── AiUtils.java │ │ │ │ └── ConsoleRunner.java │ │ └── ml │ │ │ ├── nn │ │ │ └── rnn │ │ │ │ └── _01_SentimentAnalysis_Example.java │ │ │ ├── supervised │ │ │ └── classification │ │ │ │ ├── _01_Iris_Example.java │ │ │ │ └── _02_Multi_Layered_Perceptron_Example.java │ │ │ └── utils │ │ │ ├── DownloadAllData.java │ │ │ └── DownloaderUtility.java │ │ ├── domain │ │ ├── entities │ │ │ ├── core │ │ │ │ ├── AbstractBaseEntity.java │ │ │ │ ├── AbstractBaseEntityWithUUID.java │ │ │ │ └── AuditLog.java │ │ │ └── example │ │ │ │ ├── ChatMessageEntity.java │ │ │ │ ├── CountryEntity.java │ │ │ │ └── ProductEntity.java │ │ ├── events │ │ │ └── AppEvent.java │ │ ├── exceptions │ │ │ ├── AbstractServiceException.java │ │ │ ├── AuthorizationException.java │ │ │ ├── BusinessServiceException.java │ │ │ ├── ControllerException.java │ │ │ ├── CryptoSecurityException.java │ │ │ ├── DataNotFoundException.java │ │ │ ├── DataVersionMismatchException.java │ │ │ ├── DatabaseException.java │ │ │ ├── DuplicateDataException.java │ │ │ ├── InputDataException.java │ │ │ ├── InvalidInputException.java │ │ │ ├── JWTInvalidSignatureException.java │ │ │ ├── JWTTokenExpiredException.java │ │ │ ├── JWTTokenExtractionException.java │ │ │ ├── JWTTokenSubjectException.java │ │ │ ├── JWTUnDefinedException.java │ │ │ ├── LimitExceededException.java │ │ │ ├── MandatoryDataRequiredException.java │ │ │ ├── MessagingException.java │ │ │ ├── ResourceException.java │ │ │ ├── ResourceNotFoundException.java │ │ │ ├── SecurityException.java │ │ │ ├── StreamException.java │ │ │ └── UnableToSaveException.java │ │ ├── models │ │ │ ├── auth │ │ │ │ ├── Token.java │ │ │ │ └── UserCredentials.java │ │ │ ├── core │ │ │ │ ├── AbstractResponse.java │ │ │ │ └── StandardResponse.java │ │ │ └── example │ │ │ │ ├── CardDetails.java │ │ │ │ ├── CardType.java │ │ │ │ ├── PaymentDetails.java │ │ │ │ ├── PaymentStatus.java │ │ │ │ ├── PaymentType.java │ │ │ │ └── Product.java │ │ └── ports │ │ │ ├── controllers │ │ │ ├── PaymentController.java │ │ │ └── ProductController.java │ │ │ └── services │ │ │ ├── AppService.java │ │ │ ├── ChatMessageService.java │ │ │ ├── CountryService.java │ │ │ ├── ProductService.java │ │ │ └── UserService.java │ │ ├── security │ │ ├── crypto │ │ │ ├── Algorithms.java │ │ │ ├── CryptoKeyGenerator.java │ │ │ ├── DigitalSignature.java │ │ │ ├── HashData.java │ │ │ ├── PasswordManager.java │ │ │ ├── SecretKeyData.java │ │ │ └── SecureData.java │ │ ├── jwt │ │ │ ├── client │ │ │ │ └── JsonWebTokenValidator.java │ │ │ ├── core │ │ │ │ ├── JsonWebTokenConfig.java │ │ │ │ ├── JsonWebTokenConstants.java │ │ │ │ ├── JsonWebTokenKeyManager.java │ │ │ │ ├── KeyCloakConfig.java │ │ │ │ ├── TokenData.java │ │ │ │ └── TokenDataFactory.java │ │ │ └── server │ │ │ │ ├── JsonWebTokenGenerator.java │ │ │ │ ├── JsonWebTokenKeyStore.java │ │ │ │ └── TokenManager.java │ │ └── utils │ │ │ ├── Decrypt17.java │ │ │ └── Encrypt17.java │ │ ├── server │ │ ├── aop │ │ │ └── TimeTrackerServerAspect.java │ │ ├── config │ │ │ ├── AiConfig.java │ │ │ ├── CacheDefaultConfig.java │ │ │ ├── DatabaseConfig.java │ │ │ ├── ServiceConfig.java │ │ │ ├── StandardConfig.java │ │ │ ├── SwaggerConfig.java │ │ │ ├── TomcatServerConfig.java │ │ │ ├── WebConfiguration.java │ │ │ └── WebServerConfig.java │ │ ├── controllers │ │ │ ├── AbstractController.java │ │ │ ├── ConfigController.java │ │ │ ├── EchoController.java │ │ │ ├── HealthController.java │ │ │ ├── ResourceController.java │ │ │ ├── SecurityController.java │ │ │ └── TokenController.java │ │ ├── filters │ │ │ └── ServiceRequestFilter.java │ │ ├── models │ │ │ ├── EchoData.java │ │ │ └── EchoResponseData.java │ │ ├── service │ │ │ ├── ServiceEventListener.java │ │ │ ├── ServletInitializer.java │ │ │ └── examples │ │ │ │ ├── EchoAppService.java │ │ │ │ ├── EchoService.java │ │ │ │ ├── EchoSessionService.java │ │ │ │ ├── MyService1.java │ │ │ │ ├── MyService2.java │ │ │ │ └── MyService3.java │ │ └── setup │ │ │ ├── CacheSetup.java │ │ │ ├── DatabaseSetup.java │ │ │ ├── ServiceHelp.java │ │ │ └── SwaggerSetup.java │ │ └── utils │ │ ├── CPU.java │ │ ├── DateJsonSerializer.java │ │ ├── RegexExample.java │ │ ├── Std.java │ │ ├── Utils.java │ │ └── algos │ │ └── Trie.java │ └── resources │ ├── app.props.build │ ├── app.props.tmpl │ ├── app.props.tmpl.bak │ ├── application-dev.properties │ ├── application-prod.properties │ ├── application-staging.properties │ ├── application.properties │ ├── backup │ ├── application.properties.0 │ ├── application.properties.1 │ ├── application.properties.100 │ ├── application.properties.101 │ ├── application.properties.102 │ ├── application.properties.120 │ ├── application.properties.121 │ ├── application.properties.122 │ ├── application.properties.123 │ ├── application.properties.154 │ ├── application.properties.155 │ ├── application.properties.170 │ ├── application.properties.171 │ ├── application.properties.173 │ ├── application.properties.174 │ ├── application.properties.175 │ ├── application.properties.180 │ ├── application.properties.181 │ ├── application.properties.182 │ ├── application.properties.185 │ ├── application.properties.186 │ ├── application.properties.188 │ ├── application.properties.189 │ ├── application.properties.190 │ ├── application.properties.191 │ ├── application.properties.192 │ ├── application.properties.193 │ ├── application.properties.194 │ ├── application.properties.195 │ ├── application.properties.196 │ ├── application.properties.197 │ ├── application.properties.198 │ ├── application.properties.199 │ ├── application.properties.2 │ ├── application.properties.200 │ ├── application.properties.201 │ ├── application.properties.202 │ ├── application.properties.203 │ ├── application.properties.204 │ ├── application.properties.205 │ ├── application.properties.206 │ ├── application.properties.207 │ ├── application.properties.208 │ ├── application.properties.209 │ ├── application.properties.210 │ ├── application.properties.211 │ ├── application.properties.212 │ ├── application.properties.213 │ ├── application.properties.214 │ ├── application.properties.215 │ ├── application.properties.216 │ ├── application.properties.218 │ ├── application.properties.219 │ ├── application.properties.221 │ ├── application.properties.222 │ ├── application.properties.223 │ ├── application.properties.247 │ ├── application.properties.248 │ ├── application.properties.249 │ ├── application.properties.250 │ ├── application.properties.251 │ ├── application.properties.252 │ ├── application.properties.253 │ ├── application.properties.254 │ ├── application.properties.255 │ ├── application.properties.256 │ ├── application.properties.257 │ ├── application.properties.3 │ ├── application.properties.79 │ ├── application.properties.80 │ ├── application.properties.84 │ ├── application.properties.85 │ ├── application.properties.97 │ └── application.properties.99 │ ├── data-trans.sql │ ├── logback-spring-appenders-json-logstash.xml │ ├── logback-spring-appenders-json.xml │ ├── logback-spring-appenders-text.xml │ ├── logback-spring-scope.xml │ ├── logback-spring.xml │ ├── logback-test.xml │ ├── logback-test.xml-r │ ├── logback.xml │ ├── logback.xml-r │ └── static │ ├── data │ ├── docs │ │ ├── Patient_Diagnosis_Report_Akiera_Kiera.docx │ │ ├── Patient_Diagnosis_Report_Jane_Susan_Wood.docx │ │ ├── Patient_Report_Alice_Johnson.docx │ │ ├── Patient_Report_Emily_Davis.docx │ │ ├── Patient_Report_James_Markov.docx │ │ ├── Patient_Report_Jane_Smith.docx │ │ ├── Patient_Report_Michael_Wilson.docx │ │ ├── Patient_Report_Olivia_Anderson.docx │ │ ├── Patient_Report_Robert_Brown.docx │ │ └── Patient_Report_William_Martinez.docx │ ├── e │ │ ├── akiera-kiera_biography.txt │ │ └── ozazo-car-rental-services.txt │ ├── health │ │ ├── Patient_Diagnosis_Report_Akiera_Kiera.txt │ │ ├── Patient_Diagnosis_Report_Jane_Susan_Wood.txt │ │ ├── Patient_Report_Alice_Johnson.txt │ │ ├── Patient_Report_Emily_Davis.txt │ │ ├── Patient_Report_James_Markov.txt │ │ ├── Patient_Report_Jane_Smith.txt │ │ ├── Patient_Report_Michael_Wilson.txt │ │ ├── Patient_Report_Olivia_Anderson.txt │ │ ├── Patient_Report_Robert_Brown.txt │ │ └── Patient_Report_William_Martinez.txt │ ├── ml │ │ └── mnist │ │ │ ├── mnist-image-0.jpeg │ │ │ ├── mnist-image-1.jpeg │ │ │ ├── mnist-image-2.jpeg │ │ │ ├── mnist-image-3.jpeg │ │ │ ├── mnist-image-4.jpeg │ │ │ ├── mnist-image-5.jpeg │ │ │ ├── mnist-image-6.jpeg │ │ │ ├── mnist-image-7.jpeg │ │ │ ├── mnist-image-8.jpeg │ │ │ └── mnist-image-9.jpeg │ └── p │ │ ├── bramayugam.txt │ │ ├── left.txt │ │ └── vaaliban.txt │ ├── files │ ├── error.html │ └── index.html │ ├── images │ ├── index.html │ ├── user-icon-fe.png │ ├── user-icon-ma.png │ └── user-icon.png │ └── videos │ └── index.html ├── test └── testTokens /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | lib 4 | src/docker/*.jar 5 | src/docker/libs 6 | src/docker/Dockerfile-r 7 | !.mvn/wrapper/maven-wrapper.jar 8 | !**/src/main/**/target/ 9 | !**/src/test/**/target/ 10 | 11 | ### Dont Commit Private Keys 12 | privateKey.pem 13 | 14 | ### GPT Images 15 | downloaded_image-conf.jpg 16 | downloaded_image.jpg 17 | multi-user-chat-memory.db 18 | 19 | ### STS ### 20 | .apt_generated 21 | .classpath 22 | .factorypath 23 | .project 24 | .settings 25 | .springBeans 26 | .sts4-cache 27 | 28 | ### IntelliJ IDEA ### 29 | .idea 30 | *.iws 31 | *.iml 32 | *.ipr 33 | 34 | ### NetBeans ### 35 | /nbproject/private/ 36 | /nbbuild/ 37 | /dist/ 38 | /nbdist/ 39 | /.nb-gradle/ 40 | build/ 41 | !**/src/main/**/build/ 42 | !**/src/test/**/build/ 43 | 44 | ### VS Code ### 45 | .vscode/ 46 | 47 | # Compiled class file 48 | *.class 49 | 50 | # Log file 51 | *.log 52 | 53 | # BlueJ files 54 | *.ctxt 55 | 56 | # Mobile Tools for Java (J2ME) 57 | .mtj.tmp/ 58 | 59 | # Package Files # 60 | *.jar 61 | *.war 62 | *.nar 63 | *.ear 64 | *.zip 65 | *.tar.gz 66 | *.rar 67 | 68 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 69 | hs_err_pid* 70 | replay_pid* 71 | -------------------------------------------------------------------------------- /application-dev.properties: -------------------------------------------------------------------------------- 1 | # ======================================================================= 2 | # Ai Server Properties 3 | # ======================================================================= 4 | server.port=19090 5 | # ------------------------------------------------------------------------ 6 | # Log Details 7 | # ------------------------------------------------------------------------ 8 | server.dev.mode=true 9 | logging.level.root=INFO 10 | spring.application.name=ai-service 11 | # ======================================================================= 12 | # H2 DB Properties 13 | # ======================================================================= 14 | db.server=mem 15 | db.port=5432 16 | db.name=ai_324 17 | db.schema=ms_schema 18 | db.vendor=H2 19 | # To Store the Data in File 20 | #spring.datasource.url=jdbc:h2:file:/data/demo 21 | spring.datasource.url=jdbc:h2:${db.server}:${db.name};DB_CLOSE_ON_EXIT=FALSE 22 | spring.datasource.driverClassName=org.h2.Driver 23 | spring.datasource.username=sa 24 | spring.datasource.password=ENC(lA6JCEpK7+wuHDpB1A41DOUfn6L74DQxaazXLTjyQHY5/X6CONfUEyDt6erWifrN) 25 | spring.jpa.database-platform=org.hibernate.dialect.H2Dialect 26 | # ======================================================================= 27 | # Enabling H2 Console 28 | # ======================================================================= 29 | spring.h2.console.enabled=true 30 | spring.h2.console.path=/h2-ui 31 | spring.h2.console.settings.trace=false 32 | spring.h2.console.settings.web-allow-others=false 33 | 34 | 35 | -------------------------------------------------------------------------------- /application-prod.properties: -------------------------------------------------------------------------------- 1 | # ======================================================================= 2 | # Ai Server Properties 3 | # ======================================================================= 4 | server.port=19090 5 | # ------------------------------------------------------------------------ 6 | # Log Details 7 | # ------------------------------------------------------------------------ 8 | server.dev.mode=true 9 | logging.level.root=INFO 10 | spring.application.name=ai-service 11 | # ======================================================================= 12 | # PostgreSQL DB Properties - 13 | # ======================================================================= 14 | db.server=localhost 15 | db.port=5433 16 | db.name=ai_324 17 | db.schema=ms_schema 18 | db.vendor=PostgreSQL 19 | spring.datasource.url=jdbc:postgresql://${db.server}:${db.port}/${db.name} 20 | spring.datasource.driverClassName=org.postgresql.ds.PGSimpleDataSource 21 | spring.datasource.username=postgres 22 | spring.datasource.password=2023.Sigma 23 | spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 24 | spring.datasource.hikari.connection-test-query=SELECT 1 25 | 26 | 27 | -------------------------------------------------------------------------------- /application-staging.properties: -------------------------------------------------------------------------------- 1 | # ======================================================================= 2 | # Ai Server Properties 3 | # ======================================================================= 4 | server.port=19090 5 | # ------------------------------------------------------------------------ 6 | # Log Details 7 | # ------------------------------------------------------------------------ 8 | server.dev.mode=true 9 | logging.level.root=INFO 10 | spring.application.name=ai-service 11 | # ======================================================================= 12 | # PostgreSQL DB Properties - 13 | # ======================================================================= 14 | db.server=localhost 15 | db.port=5433 16 | db.name=ai_324 17 | db.schema=ms_schema 18 | db.vendor=PostgreSQL 19 | spring.datasource.url=jdbc:postgresql://${db.server}:${db.port}/${db.name} 20 | spring.datasource.driverClassName=org.postgresql.ds.PGSimpleDataSource 21 | spring.datasource.username=postgres 22 | spring.datasource.password=2023.Sigma 23 | spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 24 | spring.datasource.hikari.connection-test-query=SELECT 1 25 | 26 | 27 | -------------------------------------------------------------------------------- /database/README.md: -------------------------------------------------------------------------------- 1 | # Setup the PostgreSQL Database 2 | 3 | ## 1. Connect to the Database Server (PostgreSQL) 4 | 5 | ``` 6 | psql -h -p -U postgres 7 | ``` 8 | 9 | ## 2. Create the database 10 | ``` 11 | CREATE DATABASE mydatabase; 12 | ``` 13 | 14 | ## 3. List all the databases 15 | ``` 16 | \l 17 | ``` 18 | 19 | ## 4. Create DB User with Password 20 | ``` 21 | CREATE USER myuser WITH PASSWORD 'mypassword'; 22 | ``` 23 | 24 | ## 5. Grant Access to the Database 25 | ``` 26 | GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser; 27 | ``` 28 | ## 6. Change Database Ownership 29 | ``` 30 | ALTER DATABASE mydatabase OWNER TO myuser; 31 | ``` 32 | 33 | ## 7. Quit the DB command line prompt 34 | ``` 35 | \q 36 | ``` 37 | 38 | 39 | -------------------------------------------------------------------------------- /database/exportdb: -------------------------------------------------------------------------------- 1 | pg_dump -U postgres -h localhost -p 5433 -d ai_324 -n ms_schema > ai-sb324-new.sql 2 | -------------------------------------------------------------------------------- /database/importdb: -------------------------------------------------------------------------------- 1 | psql -h localhost -p 5433 ai_324 < ai-sb324.sql 2 | -------------------------------------------------------------------------------- /decrypt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid, (c) Copyright 2024 4 | # ------------------------------------------------------------------------------------------- 5 | jasypt=libs/jasypt-1.9.3.jar 6 | # Name of the environment variable 7 | ENV_VAR="JASYPT_ENCRYPTOR_PASSWORD" 8 | 9 | # For Java 17+ 10 | echo Using Java 17+ Comptible code for Decryption 11 | java -cp $jasypt src/main/java/io/fusion/air/microservice/security/utils/Decrypt17.java $1 $2 12 | 13 | # For Java 23 14 | #echo Java 23 Comptible Code 15 | #java --enable-preview -cp $jasypt Decrypt.java $1 $2 16 | -------------------------------------------------------------------------------- /diagrams/Import-API-Into-Postman-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/Import-API-Into-Postman-1.jpg -------------------------------------------------------------------------------- /diagrams/Import-API-Into-Postman-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/Import-API-Into-Postman-3.jpg -------------------------------------------------------------------------------- /diagrams/Import-API-into-Postman-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/Import-API-into-Postman-0.jpg -------------------------------------------------------------------------------- /diagrams/Import-API-into-Postman-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/Import-API-into-Postman-2.jpg -------------------------------------------------------------------------------- /diagrams/MS-Cache-Swagger-UI.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/MS-Cache-Swagger-UI.jpg -------------------------------------------------------------------------------- /diagrams/MS-Pkg-Structure.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/MS-Pkg-Structure.jpg -------------------------------------------------------------------------------- /diagrams/MS-Property-File.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/MS-Property-File.jpg -------------------------------------------------------------------------------- /diagrams/MS-Run-Result.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/MS-Run-Result.jpg -------------------------------------------------------------------------------- /diagrams/Password-Gen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/Password-Gen.jpg -------------------------------------------------------------------------------- /diagrams/ai/AI-Models.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/AI-Models.jpg -------------------------------------------------------------------------------- /diagrams/ai/AI-Models.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/AI-Models.png -------------------------------------------------------------------------------- /diagrams/ai/Ai-Ex-Content-Moderation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/Ai-Ex-Content-Moderation.jpg -------------------------------------------------------------------------------- /diagrams/ai/Ai-Ex-DataExtractor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/Ai-Ex-DataExtractor.jpg -------------------------------------------------------------------------------- /diagrams/ai/Ai-Ex-RAG-OZO-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/Ai-Ex-RAG-OZO-1.jpg -------------------------------------------------------------------------------- /diagrams/ai/Ai-Ex-RAG-OZO-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/Ai-Ex-RAG-OZO-2.jpg -------------------------------------------------------------------------------- /diagrams/ai/Ai-Ex-RAG-OZO-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/Ai-Ex-RAG-OZO-3.jpg -------------------------------------------------------------------------------- /diagrams/ai/Ai-Ex-Sentiment-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/Ai-Ex-Sentiment-2.jpg -------------------------------------------------------------------------------- /diagrams/ai/Ai-Ex-Sentiment.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/Ai-Ex-Sentiment.jpg -------------------------------------------------------------------------------- /diagrams/ai/Ai-Ollama-llms.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/Ai-Ollama-llms.jpg -------------------------------------------------------------------------------- /diagrams/ai/Ai-Prompt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/Ai-Prompt.jpg -------------------------------------------------------------------------------- /diagrams/ai/ai-senti-1.txt: -------------------------------------------------------------------------------- 1 | 2 | --[Human]---------------------------------------------------------- 3 | 4 | The movie was quite engaging, although the songs were somewhat 5 | lackluster. Nevertheless, the background score and choreography 6 | significantly enhanced the musical sequences, making up for the 7 | shortcomings. Overall, the experience was not that bad. 8 | 9 | --[HAL9000]------------------------------------------------------- 10 | 11 | Rating of the content = NEUTRAL 12 | Is Sentiment Positive? = Yes 13 | Feeling: Neutral 14 | 15 | Key points: 16 | Engaging movie, lackluster songs, enhanced by background score 17 | and choreography 18 | 19 | Explanation: 20 | The movie was able to hold the viewer's attention, despite the 21 | songs being somewhat disappointing. However, the background score 22 | and choreography added value to the musical sequences, balancing 23 | out the weaknesses. Overall, the experience was not negative, but 24 | it was not exceptional either. 25 | ------------------------------------------------------------------- 26 | 27 | -------------------------------------------------------------------------------- /diagrams/ai/ai-senti-2.txt: -------------------------------------------------------------------------------- 1 | 2 | --[Human]---------------------------------------------------------- 3 | The movie was quite engaging, although the songs were somewhat 4 | lackluster. Nevertheless, the background score and choreography 5 | significantly enhanced the musical sequences, making up for the 6 | shortcomings. Overall, the experience was not that bad. 7 | 8 | --[HAL9000]------------------------------------------------------- 9 | 10 | Rating of the content = NEUTRAL 11 | Is Sentiment Positive? = Yes 12 | Feeling: Neutral 13 | 14 | Key points: 15 | Engaging movie, lackluster songs, enhanced by background score 16 | and choreography 17 | 18 | Explanation: 19 | The movie was able to hold the viewer's attention, despite the 20 | songs being somewhat disappointing. However, the background score 21 | and choreography added value to the musical sequences, balancing out 22 | the weaknesses. Overall, the experience was not negative, but it was 23 | not exceptional either. 24 | ------------------------------------------------------------------- 25 | 26 | -------------------------------------------------------------------------------- /diagrams/ai/architecture/Ai-Transformer-Arch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/architecture/Ai-Transformer-Arch.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant-2.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant-3.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant-Car-Rental-Service.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant-Car-Rental-Service.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant-Chef-Restaurant.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant-Chef-Restaurant.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant-Data-Extractor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant-Data-Extractor.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant-Health-Care.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant-Health-Care.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant-Langauge-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant-Langauge-2.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant-Langauge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant-Langauge.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant-Model-Extractor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant-Model-Extractor.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant-Moderate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant-Moderate.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant-Sentiment.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant-Sentiment.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Assistant.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Assistant.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-CLM-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-CLM-1.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-CLM-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-CLM-2.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-CLM-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-CLM-3.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-CLM-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-CLM-4.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Config-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Config-1.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Config-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Config-2.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Config-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Config-3.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Config-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Config-4.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Image-Model.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Image-Model.jpg -------------------------------------------------------------------------------- /diagrams/ai/code/Ai-Code-Moderation-Model.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/code/Ai-Code-Moderation-Model.jpg -------------------------------------------------------------------------------- /diagrams/ai/diagrams/Ai-Case-Study-Architecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/diagrams/Ai-Case-Study-Architecture.jpg -------------------------------------------------------------------------------- /diagrams/ai/diagrams/Ai-Code-Base.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/diagrams/Ai-Code-Base.jpg -------------------------------------------------------------------------------- /diagrams/ai/diagrams/Ai-RAG-Architecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ai/diagrams/Ai-RAG-Architecture.jpg -------------------------------------------------------------------------------- /diagrams/code/MS-Exceptions-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Exceptions-1.png -------------------------------------------------------------------------------- /diagrams/code/MS-Exceptions-2-Security.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Exceptions-2-Security.png -------------------------------------------------------------------------------- /diagrams/code/MS-Exceptions-3-Database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Exceptions-3-Database.png -------------------------------------------------------------------------------- /diagrams/code/MS-Exceptions-4-Database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Exceptions-4-Database.png -------------------------------------------------------------------------------- /diagrams/code/MS-Exceptions-5-Business-Controller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Exceptions-5-Business-Controller.png -------------------------------------------------------------------------------- /diagrams/code/MS-Filters-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Filters-1.png -------------------------------------------------------------------------------- /diagrams/code/MS-Filters-2-Security.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Filters-2-Security.png -------------------------------------------------------------------------------- /diagrams/code/MS-Filters-3-Security.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Filters-3-Security.png -------------------------------------------------------------------------------- /diagrams/code/MS-Logging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Logging.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-1.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-2.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-JWT-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-JWT-0.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-JWT-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-JWT-1.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-JWT-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-JWT-2.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-JWT-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-JWT-4.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-JWT-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-JWT-5.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-JWT-Create-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-JWT-Create-1.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-JWT-Create-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-JWT-Create-2.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-JWT-Create-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-JWT-Create-3.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-Validations-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-Validations-1.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-Validations-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-Validations-2.png -------------------------------------------------------------------------------- /diagrams/code/MS-Security-Validations-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/code/MS-Security-Validations-3.png -------------------------------------------------------------------------------- /diagrams/crud/crud-1-get-fallback.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-1-get-fallback.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-2-post-prod-1-A.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-2-post-prod-1-A.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-2-post-prod-1-B.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-2-post-prod-1-B.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-3-post-prod-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-3-post-prod-2.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-4-post-prod-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-4-post-prod-3.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-5-get-from-db.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-5-get-from-db.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-6-get-from-db.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-6-get-from-db.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-7-put-update-price.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-7-put-update-price.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-8-put-deactivate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-8-put-deactivate.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-9-db-records.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-9-db-records.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-error-1-post-invalid-input-A.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-error-1-post-invalid-input-A.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-error-1-post-invalid-input-B.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-error-1-post-invalid-input-B.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-error-2-post-invalid-input-A.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-error-2-post-invalid-input-A.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-error-2-post-invalid-input-B.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-error-2-post-invalid-input-B.jpg -------------------------------------------------------------------------------- /diagrams/crud/crud-error-3-post-Version-Mismatch-B.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/crud/crud-error-3-post-Version-Mismatch-B.jpg -------------------------------------------------------------------------------- /diagrams/encrypt/Security-Encryption-pro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/encrypt/Security-Encryption-pro.jpg -------------------------------------------------------------------------------- /diagrams/encrypt/Security-H2-psd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/encrypt/Security-H2-psd.jpg -------------------------------------------------------------------------------- /diagrams/encrypt/Security-PostgreSQL-psd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/encrypt/Security-PostgreSQL-psd.jpg -------------------------------------------------------------------------------- /diagrams/langchain4j-components.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/langchain4j-components.jpg -------------------------------------------------------------------------------- /diagrams/langchain4j-components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/langchain4j-components.png -------------------------------------------------------------------------------- /diagrams/log/Log-Messages-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/log/Log-Messages-1.jpg -------------------------------------------------------------------------------- /diagrams/log/Log-Messages-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/log/Log-Messages-2.jpg -------------------------------------------------------------------------------- /diagrams/ms-cache-code-base.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ms-cache-code-base.jpg -------------------------------------------------------------------------------- /diagrams/ms-cache-with-Test-Tokens-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ms-cache-with-Test-Tokens-2.jpg -------------------------------------------------------------------------------- /diagrams/ms-cache-with-Test-Tokens-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ms-cache-with-Test-Tokens-3.jpg -------------------------------------------------------------------------------- /diagrams/ms-cache-with-Test-Tokens.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/ms-cache-with-Test-Tokens.jpg -------------------------------------------------------------------------------- /diagrams/tokens/MS-JWT-Auth-Token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/tokens/MS-JWT-Auth-Token.png -------------------------------------------------------------------------------- /diagrams/tokens/MS-JWT-Refresh-Token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/tokens/MS-JWT-Refresh-Token.png -------------------------------------------------------------------------------- /diagrams/tokens/MS-JWT-Tx-Token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/diagrams/tokens/MS-JWT-Tx-Token.png -------------------------------------------------------------------------------- /downloaded_image-conf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/downloaded_image-conf.jpg -------------------------------------------------------------------------------- /encrypt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid, (c) Copyright 2024 4 | # ------------------------------------------------------------------------------------------- 5 | jasypt=libs/jasypt-1.9.3.jar 6 | # Name of the environment variable 7 | ENV_VAR="JASYPT_ENCRYPTOR_PASSWORD" 8 | 9 | # For Java 17+ 10 | echo Using Java 17+ Comptible code 11 | java -cp $jasypt src/main/java/io/fusion/air/microservice/security/utils/Encrypt17.java $1 $2 12 | 13 | # For Java 23 14 | #echo Java 23 Comptible Code 15 | #java --enable-preview -cp $jasypt Encrypt.java $1 $2 16 | 17 | # Check if the second argument ($2) is provided and valid (not empty) 18 | if [ -n "$2" ]; then 19 | # Check if the environment variable is set 20 | if [ -z "${!ENV_VAR}" ]; then 21 | echo "Environment variable $ENV_VAR is not set." 22 | echo "Setting it to: $2" 23 | export $ENV_VAR="$2" 24 | else 25 | echo "Environment variable $ENV_VAR is already set" 26 | fi 27 | fi 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /generateBuildNumber: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ============================================================================ 3 | # Build No. Generator 4 | # @author: Araf Karsh Hamid 5 | # ============================================================================ 6 | 7 | PROPS_PATH=src/main/resources 8 | PROPS_BUILD=app.props.build 9 | PROPS_TMPL=app.props.tmpl 10 | PROPS_BACK=$PROPS_PATH/backup 11 | PROPS_FILE=application.properties 12 | 13 | CURR_BN=`git rev-list HEAD --count` 14 | if [ -z "$CURR_BN" ] 15 | then 16 | CURR_BN=1 17 | fi 18 | PREV_BN=`expr $CURR_BN - 1` 19 | 20 | echo "=======================================================================" 21 | echo "Previous Build Number="$PREV_BN 22 | echo "Current Build Number="$CURR_BN 23 | echo "=======================================================================" 24 | echo "Taking Properties Backup" 25 | cp $PROPS_PATH/$PROPS_FILE $PROPS_BACK/$PROPS_FILE.$PREV_BN 26 | echo "=======================================================================" 27 | echo "Generate Build Numbers" 28 | echo "# =======================================================================" > $PROPS_PATH/$PROPS_BUILD 29 | echo "# $1 Service Properties" >> $PROPS_PATH/$PROPS_BUILD 30 | echo "# =======================================================================" >> $PROPS_PATH/$PROPS_BUILD 31 | echo "build.number="$CURR_BN >> $PROPS_PATH/$PROPS_BUILD 32 | echo "build.date="`date` >> $PROPS_PATH/$PROPS_BUILD 33 | 34 | cat $PROPS_PATH/$PROPS_BUILD > $PROPS_PATH/$PROPS_FILE 35 | cat $PROPS_PATH/$PROPS_TMPL >> $PROPS_PATH/$PROPS_FILE 36 | echo "=======================================================================" 37 | -------------------------------------------------------------------------------- /getServiceName: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | #SRC_BASE=~/workspace/IntelliJ/ms-cache-kafka-quickstart 6 | SRC_BASE=${PWD} 7 | orgName=1 8 | serviceName=2 9 | apiName=3 10 | containerName=4 11 | param=$1 12 | if [ -z "$param" ] 13 | then 14 | fgrep service.name= $SRC_BASE/src/main/resources/app.props.tmpl | cut -d "=" -f 2 15 | exit 16 | fi 17 | if [ $param == $orgName ] 18 | then 19 | fgrep service.org= $SRC_BASE/src/main/resources/app.props.tmpl | cut -d "=" -f 2 20 | exit 21 | elif [ $param == $serviceName ] 22 | then 23 | fgrep service.name= $SRC_BASE/src/main/resources/app.props.tmpl | cut -d "=" -f 2 24 | exit 25 | elif [ $param == $apiName ] 26 | then 27 | fgrep service.api.name= $SRC_BASE/src/main/resources/app.props.tmpl | cut -d "=" -f 2 28 | exit 29 | elif [ $param == $containerName ] 30 | then 31 | fgrep service.container= $SRC_BASE/src/main/resources/app.props.tmpl | cut -d "=" -f 2 32 | exit 33 | fi 34 | fgrep service.api.name= $SRC_BASE/src/main/resources/app.props.tmpl | cut -d "=" -f 2 35 | exit 36 | -------------------------------------------------------------------------------- /jenkinsfile: -------------------------------------------------------------------------------- 1 | pipeline { 2 | agent any 3 | 4 | stages { 5 | stage('Build') { 6 | steps { 7 | echo 'Checkout the App' 8 | checkout([$class: 'GitSCM', branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[url: 'https://github.com/MetaArivu/microservice-template.git']]]) 9 | echo 'Build the App' 10 | sh 'compile' 11 | } 12 | } 13 | stage('Test') { 14 | steps { 15 | echo 'Test the App' 16 | } 17 | } 18 | stage('Staging') { 19 | steps { 20 | echo 'Deploy the App in Staging' 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /jmeter/README.MD: -------------------------------------------------------------------------------- 1 | # JMeter v5.5 2 | 3 | - Ensure that JMeter is installed and its available in the PATH 4 | - To Run the Jmeter test case run the following command. 5 | 6 | ``` 7 | jmeter -n -t ms-sb-272-j8.jmx -l ms-sb-272-j8-2023-06-20-13-27-20.jtl -e -o jmoutput-2023-06-20-13-27-20 8 | ``` 9 | 10 | Here's a description of the options used: 11 | 12 | - -n: This specifies JMeter is to run in non-GUI mode 13 | - -t: The name of the JMX file that contains the Test Plan 14 | - -l: The name of the file to which the test log is written 15 | - -e: Generate an HTML report at end of the test and save it to the specified directory (-o option). 16 | - -o: Path to the directory where the HTML report will be generated. 17 | 18 | ## Execute the Test case 19 | 20 | When you run the command (shell script) "run" you will get the following output 21 | 22 | ![JMeter RUN](https://raw.githubusercontent.com/arafkarsh/ms-springboot-272-java-8/master/jmeter/diagrams/Jmeter-Run.jpg) 23 | 24 | ## JMeter Output 25 | 26 | ![JMeter RUN](https://raw.githubusercontent.com/arafkarsh/ms-springboot-272-java-8/master/jmeter/diagrams/Jmeter-Result.png) 27 | 28 | 29 | -------------------------------------------------------------------------------- /jmeter/diagrams/Jmeter-Result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/diagrams/Jmeter-Result.png -------------------------------------------------------------------------------- /jmeter/diagrams/Jmeter-Run.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/diagrams/Jmeter-Run.jpg -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/content/css/dashboard.css: -------------------------------------------------------------------------------- 1 | /* 2 | Licensed to the Apache Software Foundation (ASF) under one or more 3 | contributor license agreements. See the NOTICE file distributed with 4 | this work for additional information regarding copyright ownership. 5 | The ASF licenses this file to You under the Apache License, Version 2.0 6 | (the "License"); you may not use this file except in compliance with 7 | the License. You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | #stats td, th 18 | { 19 | 20 | width: 9%;//140px; 21 | height: 30px; 22 | } 23 | #stats td 24 | { 25 | text-align: center; 26 | } 27 | #stats th 28 | { 29 | font-weight:bold; 30 | } 31 | .blue 32 | { 33 | background-color: #dff0d8; 34 | } 35 | #errors td, th 36 | { 37 | text-align: center; 38 | width: 400px; 39 | height: 30px; 40 | } 41 | #errors td 42 | { 43 | 44 | } 45 | #errors th 46 | { 47 | font-weight:bold; 48 | } 49 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/content/css/legends.css: -------------------------------------------------------------------------------- 1 | /* 2 | Licensed to the Apache Software Foundation (ASF) under one or more 3 | contributor license agreements. See the NOTICE file distributed with 4 | this work for additional information regarding copyright ownership. 5 | The ASF licenses this file to You under the Apache License, Version 2.0 6 | (the "License"); you may not use this file except in compliance with 7 | the License. You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | .legend { 18 | margin-left: -40px; 19 | font-size: 12px; 20 | display: inline; 21 | font-family: 'Open Sans'; 22 | font-weight: bold; 23 | } 24 | 25 | .panel-footer 26 | { 27 | 28 | } 29 | 30 | .subLegend 31 | { 32 | 33 | } 34 | 35 | .legend li > div { 36 | display: inline-block; 37 | margin-right: 3px; 38 | margin-left: 5px; 39 | } 40 | 41 | .legend li label { 42 | margin-left: 1px; 43 | margin-right: 10px; 44 | color: black; 45 | font-family: Open sans; 46 | /*width: 200px;*/ 47 | } 48 | li 49 | { 50 | list-style-type:none; 51 | display: inline-block; 52 | } 53 | 54 | .nav-third-level 55 | { 56 | font-size: 12px; 57 | } 58 | 59 | .legend-disabled { 60 | border-color: #818181 !important; 61 | } 62 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/content/pages/icon-apache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/jmoutput-2023-06-20-13-27-20/content/pages/icon-apache.png -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/README.md: -------------------------------------------------------------------------------- 1 | # [Start Bootstrap](http://startbootstrap.com/) - [SB Admin 2](http://startbootstrap.com/template-overviews/sb-admin-2/) 2 | 3 | [SB Admin 2](http://startbootstrap.com/template-overviews/sb-admin-2/) is an open source, admin dashboard template for [Bootstrap](http://getbootstrap.com/) created by [Start Bootstrap](http://startbootstrap.com/). 4 | 5 | ## Getting Started 6 | 7 | To use this template, choose one of the following options to get started: 8 | * Download the latest release on Start Bootstrap 9 | * Fork this repository on GitHub 10 | * Install via bower using `bower install startbootstrap-sb-admin-2` 11 | 12 | ## Bugs and Issues 13 | 14 | Have a bug or an issue with this template? [Open a new issue](https://github.com/IronSummitMedia/startbootstrap-sb-admin-2/issues) here on GitHub or leave a comment on the [template overview page at Start Bootstrap](http://startbootstrap.com/template-overviews/sb-admin-2/). 15 | 16 | ## Creator 17 | 18 | Start Bootstrap was created by and is maintained by **David Miller**, Managing Parter at [Iron Summit Media Strategies](http://www.ironsummitmedia.com/). 19 | 20 | * https://twitter.com/davidmillerskt 21 | * https://github.com/davidtmiller 22 | 23 | Start Bootstrap is based on the [Bootstrap](http://getbootstrap.com/) framework created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thorton](https://twitter.com/fat). 24 | 25 | ## Copyright and License 26 | 27 | Copyright 2013-2015 Iron Summit Media Strategies, LLC. Code released under the [Apache 2.0](https://github.com/IronSummitMedia/startbootstrap-sb-admin-2/blob/gh-pages/LICENSE) license. 28 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "startbootstrap-sb-admin-2", 3 | "version": "1.0.7", 4 | "homepage": "http://startbootstrap.com/template-overviews/sb-admin-2/", 5 | "authors": [ 6 | "David Miller" 7 | ], 8 | "description": "A free, open source, Bootstrap admin theme created by Start Bootstrap", 9 | "keywords": [ 10 | "bootstrap", 11 | "theme" 12 | ], 13 | "license": "Apache", 14 | "ignore": [ 15 | "**/.*", 16 | "node_modules", 17 | "bower_components", 18 | "test", 19 | "tests", 20 | "pages", 21 | "index.html", 22 | "/js" 23 | ], 24 | "main": [ 25 | "dist/css/sb-admin-2.css", 26 | "dist/js/sb-admin-2.js" 27 | ], 28 | "dependencies": { 29 | "bootstrap": "~3.3.1", 30 | "datatables": "~1.10.4", 31 | "datatables-plugins": "~1.0.1", 32 | "flot": "~0.8.3", 33 | "font-awesome": "~4.2.0", 34 | "metisMenu": "~1.1.3", 35 | "datatables-responsive": "~1.0.3", 36 | "bootstrap-social": "~4.8.0", 37 | "flot.tooltip": "~0.8.4" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/bootstrap/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 4 | "version": "3.3.4", 5 | "keywords": [ 6 | "css", 7 | "js", 8 | "less", 9 | "mobile-first", 10 | "responsive", 11 | "front-end", 12 | "framework", 13 | "web" 14 | ], 15 | "homepage": "http://getbootstrap.com", 16 | "main": [ 17 | "less/bootstrap.less", 18 | "dist/css/bootstrap.css", 19 | "dist/js/bootstrap.js", 20 | "dist/fonts/glyphicons-halflings-regular.eot", 21 | "dist/fonts/glyphicons-halflings-regular.svg", 22 | "dist/fonts/glyphicons-halflings-regular.ttf", 23 | "dist/fonts/glyphicons-halflings-regular.woff", 24 | "dist/fonts/glyphicons-halflings-regular.woff2" 25 | ], 26 | "ignore": [ 27 | "/.*", 28 | "_config.yml", 29 | "CNAME", 30 | "composer.json", 31 | "CONTRIBUTING.md", 32 | "docs", 33 | "js/tests", 34 | "test-infra" 35 | ], 36 | "dependencies": { 37 | "jquery": ">= 1.9.1" 38 | }, 39 | "_release": "3.3.4", 40 | "_resolution": { 41 | "type": "version", 42 | "tag": "v3.3.4", 43 | "commit": "a10eb60bc0b07b747fa0c4ebd8821eb7307bd07f" 44 | }, 45 | "_source": "git://github.com/twbs/bootstrap.git", 46 | "_target": "~3.3.1", 47 | "_originalSource": "bootstrap" 48 | } -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/flot-axislabels/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flot-axislabels", 3 | "homepage": "https://github.com/markrcote/flot-axislabels", 4 | "_release": "a181e09d04", 5 | "_resolution": { 6 | "type": "branch", 7 | "branch": "master", 8 | "commit": "a181e09d04d120d05e5bc2baaa8738b5b3670428" 9 | }, 10 | "_source": "git://github.com/markrcote/flot-axislabels.git", 11 | "_target": "*", 12 | "_originalSource": "flot-axislabels", 13 | "_direct": true 14 | } -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/flot.tooltip/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flot.tooltip", 3 | "version": "0.8.4", 4 | "main": "js/jquery.flot.tooltip.js", 5 | "ignore": [ 6 | ".gitignore", 7 | "Gruntfile.js", 8 | "README.md", 9 | "package.json", 10 | "examples", 11 | "js/old" 12 | ], 13 | "homepage": "https://github.com/krzysu/flot.tooltip", 14 | "_release": "0.8.4", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "0.8.4", 18 | "commit": "312a7570f6dfeff00d9c0ce6f6263160b84ee652" 19 | }, 20 | "_source": "git://github.com/krzysu/flot.tooltip.git", 21 | "_target": "~0.8.4", 22 | "_originalSource": "flot.tooltip", 23 | "_direct": true 24 | } -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/flot.tooltip/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flot.tooltip", 3 | "version": "0.7.1", 4 | "main": "js/jquery.flot.tooltip.js", 5 | "ignore": [ 6 | ".gitignore", 7 | "Gruntfile.js", 8 | "README.md", 9 | "package.json", 10 | "examples", 11 | "js/old" 12 | ] 13 | } -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/flot/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Flot", 3 | "version": "0.8.3", 4 | "main": "jquery.flot.js", 5 | "dependencies": { 6 | "jquery": ">= 1.2.6" 7 | }, 8 | "homepage": "https://github.com/flot/flot", 9 | "_release": "0.8.3", 10 | "_resolution": { 11 | "type": "version", 12 | "tag": "v0.8.3", 13 | "commit": "453b017cc5acfd75e252b93e8635f57f4196d45d" 14 | }, 15 | "_source": "git://github.com/flot/flot.git", 16 | "_target": "~0.8.3", 17 | "_originalSource": "flot", 18 | "_direct": true 19 | } -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/flot/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.8 4 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/flot/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for generating minified files 2 | 3 | .PHONY: all 4 | 5 | # we cheat and process all .js files instead of an exhaustive list 6 | all: $(patsubst %.js,%.min.js,$(filter-out %.min.js,$(wildcard *.js))) 7 | 8 | %.min.js: %.js 9 | yui-compressor $< -o $@ 10 | 11 | test: 12 | ./node_modules/.bin/jshint *jquery.flot.js 13 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/flot/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Flot", 3 | "version": "0.8.3", 4 | "main": "jquery.flot.js", 5 | "dependencies": { 6 | "jquery": ">= 1.2.6" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/flot/flot.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flot", 3 | "version": "0.8.3", 4 | "title": "Flot", 5 | "author": { 6 | "name": "Ole Laursen", 7 | "url": "https://github.com/OleLaursen" 8 | }, 9 | "licenses": [{ 10 | "type": "MIT", 11 | "url": "http://github.com/flot/flot/blob/master/LICENSE.txt" 12 | }], 13 | "dependencies": { 14 | "jquery": ">=1.2.6" 15 | }, 16 | "description": "Flot is a pure JavaScript plotting library for jQuery, with a focus on simple usage, attractive looks and interactive features.", 17 | "keywords": ["plot", "chart", "graph", "visualization", "canvas", "graphics"], 18 | "homepage": "http://www.flotcharts.org", 19 | "docs": "http://github.com/flot/flot/blob/master/API.md", 20 | "demo": "http://www.flotcharts.org/flot/examples/", 21 | "bugs": "http://github.com/flot/flot/issues", 22 | "maintainers": [{ 23 | "name": "David Schnur", 24 | "email": "dnschnur@gmail.com", 25 | "url": "http://github.com/dnschnur" 26 | }] 27 | } 28 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/flot/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Flot", 3 | "version": "0.8.3", 4 | "main": "jquery.flot.js", 5 | "scripts": { 6 | "test": "make test" 7 | }, 8 | "devDependencies": { 9 | "jshint": "0.9.1" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "version": "4.2.0", 5 | "keywords": [], 6 | "homepage": "http://fontawesome.io", 7 | "dependencies": {}, 8 | "devDependencies": {}, 9 | "license": [ 10 | "OFL-1.1", 11 | "MIT", 12 | "CC-BY-3.0" 13 | ], 14 | "main": [ 15 | "./css/font-awesome.css", 16 | "./fonts/*" 17 | ], 18 | "ignore": [ 19 | "*/.*", 20 | "*.json", 21 | "src", 22 | "*.yml", 23 | "Gemfile", 24 | "Gemfile.lock", 25 | "*.md" 26 | ], 27 | "_release": "4.2.0", 28 | "_resolution": { 29 | "type": "version", 30 | "tag": "v4.2.0", 31 | "commit": "0b924144a95a54fa738d0450ff66c1dabd11ae74" 32 | }, 33 | "_source": "git://github.com/FortAwesome/Font-Awesome.git", 34 | "_target": "~4.2.0", 35 | "_originalSource": "font-awesome" 36 | } -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/.npmignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | *.db 4 | *.db.old 5 | *.swp 6 | *.db-journal 7 | 8 | .coverage 9 | .DS_Store 10 | .installed.cfg 11 | _gh_pages/* 12 | 13 | .idea/* 14 | .svn/* 15 | src/website/static/* 16 | src/website/media/* 17 | 18 | bin 19 | cfcache 20 | develop-eggs 21 | dist 22 | downloads 23 | eggs 24 | parts 25 | tmp 26 | .sass-cache 27 | node_modules 28 | 29 | src/website/settingslocal.py 30 | stunnel.log 31 | 32 | .ruby-version 33 | 34 | # don't need these in the npm package. 35 | src/ 36 | _config.yml 37 | bower.json 38 | component.json 39 | composer.json 40 | CONTRIBUTING.md 41 | Gemfile 42 | Gemfile.lock 43 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "version": "4.2.0", 5 | "keywords": [], 6 | "homepage": "http://fontawesome.io", 7 | "dependencies": {}, 8 | "devDependencies": {}, 9 | "license": ["OFL-1.1", "MIT", "CC-BY-3.0"], 10 | "main": [ 11 | "./css/font-awesome.css", 12 | "./fonts/*" 13 | ], 14 | "ignore": [ 15 | "*/.*", 16 | "*.json", 17 | "src", 18 | "*.yml", 19 | "Gemfile", 20 | "Gemfile.lock", 21 | "*.md" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .@{fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal 14px/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | } 12 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/extras.less: -------------------------------------------------------------------------------- 1 | // Extras 2 | // -------------------------- 3 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "spinning.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal 14px/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | } 12 | 13 | .fa-icon-rotate(@degrees, @rotation) { 14 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); 15 | -webkit-transform: rotate(@degrees); 16 | -ms-transform: rotate(@degrees); 17 | transform: rotate(@degrees); 18 | } 19 | 20 | .fa-icon-flip(@horiz, @vert, @rotation) { 21 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); 22 | -webkit-transform: scale(@horiz, @vert); 23 | -ms-transform: scale(@horiz, @vert); 24 | transform: scale(@horiz, @vert); 25 | } 26 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 9 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 10 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 11 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/spinning.less: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | @-webkit-keyframes fa-spin { 10 | 0% { 11 | -webkit-transform: rotate(0deg); 12 | transform: rotate(0deg); 13 | } 14 | 100% { 15 | -webkit-transform: rotate(359deg); 16 | transform: rotate(359deg); 17 | } 18 | } 19 | 20 | @keyframes fa-spin { 21 | 0% { 22 | -webkit-transform: rotate(0deg); 23 | transform: rotate(0deg); 24 | } 25 | 100% { 26 | -webkit-transform: rotate(359deg); 27 | transform: rotate(359deg); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal 14px/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | } 12 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/_extras.scss: -------------------------------------------------------------------------------- 1 | /* EXTRAS 2 | * -------------------------- */ 3 | 4 | /* Stacked and layered icon */ 5 | 6 | /* Animated rotating icon */ 7 | .#{$fa-css-prefix}-spin { 8 | -webkit-animation: spin 2s infinite linear; 9 | -moz-animation: spin 2s infinite linear; 10 | -o-animation: spin 2s infinite linear; 11 | animation: spin 2s infinite linear; 12 | } 13 | 14 | @-moz-keyframes spin { 15 | 0% { -moz-transform: rotate(0deg); } 16 | 100% { -moz-transform: rotate(359deg); } 17 | } 18 | @-webkit-keyframes spin { 19 | 0% { -webkit-transform: rotate(0deg); } 20 | 100% { -webkit-transform: rotate(359deg); } 21 | } 22 | @-o-keyframes spin { 23 | 0% { -o-transform: rotate(0deg); } 24 | 100% { -o-transform: rotate(359deg); } 25 | } 26 | @-ms-keyframes spin { 27 | 0% { -ms-transform: rotate(0deg); } 28 | 100% { -ms-transform: rotate(359deg); } 29 | } 30 | @keyframes spin { 31 | 0% { transform: rotate(0deg); } 32 | 100% { transform: rotate(359deg); } 33 | } 34 | 35 | 36 | // Icon rotations & flipping 37 | // ------------------------- 38 | 39 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 40 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 41 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 42 | 43 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 44 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 45 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal 14px/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | } 12 | 13 | @mixin fa-icon-rotate($degrees, $rotation) { 14 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 15 | -webkit-transform: rotate($degrees); 16 | -ms-transform: rotate($degrees); 17 | transform: rotate($degrees); 18 | } 19 | 20 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 21 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 22 | -webkit-transform: scale($horiz, $vert); 23 | -ms-transform: scale($horiz, $vert); 24 | transform: scale($horiz, $vert); 25 | } 26 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 9 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 10 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 11 | //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/_spinning.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | @-webkit-keyframes fa-spin { 10 | 0% { 11 | -webkit-transform: rotate(0deg); 12 | transform: rotate(0deg); 13 | } 14 | 100% { 15 | -webkit-transform: rotate(359deg); 16 | transform: rotate(359deg); 17 | } 18 | } 19 | 20 | @keyframes fa-spin { 21 | 0% { 22 | -webkit-transform: rotate(0deg); 23 | transform: rotate(0deg); 24 | } 25 | 100% { 26 | -webkit-transform: rotate(359deg); 27 | transform: rotate(359deg); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "spinning"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "2.1.3", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "speed", 10 | "test", 11 | "*.md", 12 | "AUTHORS.txt", 13 | "Gruntfile.js", 14 | "package.json" 15 | ], 16 | "devDependencies": { 17 | "sizzle": "2.1.1-jquery.2.1.2", 18 | "requirejs": "2.1.10", 19 | "qunit": "1.14.0", 20 | "sinon": "1.8.1" 21 | }, 22 | "keywords": [ 23 | "jquery", 24 | "javascript", 25 | "library" 26 | ], 27 | "homepage": "https://github.com/jquery/jquery", 28 | "_release": "2.1.3", 29 | "_resolution": { 30 | "type": "version", 31 | "tag": "2.1.3", 32 | "commit": "8f2a9d9272d6ed7f32d3a484740ab342c02541e0" 33 | }, 34 | "_source": "git://github.com/jquery/jquery.git", 35 | "_target": ">= 1.9.1", 36 | "_originalSource": "jquery" 37 | } -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "2.1.3", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "speed", 10 | "test", 11 | "*.md", 12 | "AUTHORS.txt", 13 | "Gruntfile.js", 14 | "package.json" 15 | ], 16 | "devDependencies": { 17 | "sizzle": "2.1.1-jquery.2.1.2", 18 | "requirejs": "2.1.10", 19 | "qunit": "1.14.0", 20 | "sinon": "1.8.1" 21 | }, 22 | "keywords": [ 23 | "jquery", 24 | "javascript", 25 | "library" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/metisMenu/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "metisMenu", 3 | "version": "1.1.3", 4 | "homepage": "https://github.com/onokumus/metisMenu", 5 | "authors": [ 6 | "onokumus " 7 | ], 8 | "description": "Easy menu jQuery plugin for Twitter Bootstrap 3", 9 | "main": [ 10 | "dist/metisMenu.js", 11 | "dist/metisMenu.css" 12 | ], 13 | "keywords": [ 14 | "twitter", 15 | "bootstrap", 16 | "twbs", 17 | "jquery", 18 | "menu", 19 | "accordion", 20 | "toggle", 21 | "metis", 22 | "metisMenu" 23 | ], 24 | "license": "MIT", 25 | "ignore": [ 26 | "**/.*", 27 | "node_modules", 28 | "bower_components", 29 | "test", 30 | "tests" 31 | ], 32 | "dependencies": { 33 | "bootstrap": "~3.3.0" 34 | }, 35 | "_release": "1.1.3", 36 | "_resolution": { 37 | "type": "version", 38 | "tag": "1.1.3", 39 | "commit": "8e179d59f60a593203667c092119779dc36f5171" 40 | }, 41 | "_source": "git://github.com/onokumus/metisMenu.git", 42 | "_target": "~1.1.3", 43 | "_originalSource": "metisMenu", 44 | "_direct": true 45 | } -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/bower_components/metisMenu/dist/metisMenu.min.css: -------------------------------------------------------------------------------- 1 | /* 2 | * metismenu - v1.1.3 3 | * Easy menu jQuery plugin for Twitter Bootstrap 3 4 | * https://github.com/onokumus/metisMenu 5 | * 6 | * Made by Osman Nuri Okumus 7 | * Under MIT License 8 | */ 9 | 10 | .arrow{float:right;line-height:1.42857}.glyphicon.arrow:before{content:"\e079"}.active>a>.glyphicon.arrow:before{content:"\e114"}.fa.arrow:before{content:"\f104"}.active>a>.fa.arrow:before{content:"\f107"}.plus-times{float:right}.fa.plus-times:before{content:"\f067"}.active>a>.fa.plus-times{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.plus-minus{float:right}.fa.plus-minus:before{content:"\f067"}.active>a>.fa.plus-minus:before{content:"\f068"} -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/dist/js/sb-admin-2.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 3 | $('#side-menu').metisMenu(); 4 | 5 | }); 6 | 7 | //Loads the correct sidebar on window load, 8 | //collapses the sidebar on window resize. 9 | // Sets the min-height of #page-wrapper to window size 10 | $(function() { 11 | $(window).bind("load resize", function() { 12 | topOffset = 50; 13 | width = (this.window.innerWidth > 0) ? this.window.innerWidth : this.screen.width; 14 | if (width < 768) { 15 | $('div.navbar-collapse').addClass('collapse'); 16 | topOffset = 100; // 2-row-menu 17 | } else { 18 | $('div.navbar-collapse').removeClass('collapse'); 19 | } 20 | 21 | height = ((this.window.innerHeight > 0) ? this.window.innerHeight : this.screen.height) - 1; 22 | height = height - topOffset; 23 | if (height < 1) height = 1; 24 | if (height > topOffset) { 25 | $("#page-wrapper").css("min-height", (height) + "px"); 26 | } 27 | }); 28 | 29 | var url = window.location; 30 | var element = $('ul.nav a').filter(function() { 31 | return this.href == url || url.href.indexOf(this.href) == 0; 32 | }).addClass('active').parent().parent().addClass('in').parent(); 33 | if (element.is('li')) { 34 | element.addClass('active'); 35 | } 36 | }); 37 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/sbadmin2-1.0.7/less/variables.less: -------------------------------------------------------------------------------- 1 | // Variables 2 | 3 | @gray-darker: lighten(#000, 13.5%); 4 | @gray-dark: lighten(#000, 20%); 5 | @gray: lighten(#000, 33.5%); 6 | @gray-light: lighten(#000, 60%); 7 | @gray-lighter: lighten(#000, 93.5%); 8 | @gray-lightest: lighten(#000, 97.25%); 9 | @brand-primary: #428bca; 10 | @brand-success: #5cb85c; 11 | @brand-info: #5bc0de; 12 | @brand-warning: #f0ad4e; 13 | @brand-danger: #d9534f; 14 | 15 | -------------------------------------------------------------------------------- /jmeter/jmoutput-2023-06-20-13-27-20/statistics.json: -------------------------------------------------------------------------------- 1 | { 2 | "Get All Products" : { 3 | "transaction" : "Get All Products", 4 | "sampleCount" : 1200, 5 | "errorCount" : 51, 6 | "errorPct" : 4.25, 7 | "meanResTime" : 3.396666666666669, 8 | "medianResTime" : 3.0, 9 | "minResTime" : 1.0, 10 | "maxResTime" : 92.0, 11 | "pct1ResTime" : 5.0, 12 | "pct2ResTime" : 7.0, 13 | "pct3ResTime" : 12.0, 14 | "throughput" : 49.03563255966002, 15 | "receivedKBytesPerSec" : 84.80674342105263, 16 | "sentKBytesPerSec" : 16.18558965348153 17 | }, 18 | "Total" : { 19 | "transaction" : "Total", 20 | "sampleCount" : 2400, 21 | "errorCount" : 89, 22 | "errorPct" : 3.7083333, 23 | "meanResTime" : 3.3154166666666645, 24 | "medianResTime" : 3.0, 25 | "minResTime" : 1.0, 26 | "maxResTime" : 92.0, 27 | "pct1ResTime" : 5.0, 28 | "pct2ResTime" : 6.0, 29 | "pct3ResTime" : 12.0, 30 | "throughput" : 98.06325079676391, 31 | "receivedKBytesPerSec" : 169.85914899485167, 32 | "sentKBytesPerSec" : 32.84735842118166 33 | }, 34 | "Search Products" : { 35 | "transaction" : "Search Products", 36 | "sampleCount" : 1200, 37 | "errorCount" : 38, 38 | "errorPct" : 3.1666667, 39 | "meanResTime" : 3.2341666666666717, 40 | "medianResTime" : 3.0, 41 | "minResTime" : 1.0, 42 | "maxResTime" : 53.0, 43 | "pct1ResTime" : 4.0, 44 | "pct2ResTime" : 6.0, 45 | "pct3ResTime" : 11.990000000000009, 46 | "throughput" : 49.15413918813747, 47 | "receivedKBytesPerSec" : 85.2718710318273, 48 | "sentKBytesPerSec" : 16.70472698971859 49 | } 50 | } -------------------------------------------------------------------------------- /jmeter/results/ms-sb-272.java-8.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/jmeter/results/ms-sb-272.java-8.csv -------------------------------------------------------------------------------- /jmeter/run: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | ct=$(date +"%Y-%m-%d-%H-%M-%S") 6 | tc=ms-sb-272-j8.jmx 7 | rf=ms-sb-272-j8-$ct.jtl 8 | rd=jmoutput-$ct 9 | 10 | echo "Starting JMeter tests for Order Service" 11 | echo "JMeter Test Case = $tc" 12 | echo "Jmeter Test Log (jtl) = $rf" 13 | echo "Results Folder = $rd" 14 | echo "jmeter -n -t $tc -l $rf -e -o $rd" 15 | jmeter -n -t $tc -l $rf -e -o $rd 16 | 17 | -------------------------------------------------------------------------------- /llms/llama3: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | echo Starting Llama3 Server... 6 | ollama run llama3 7 | -------------------------------------------------------------------------------- /llms/mistral: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | echo Starting Mistral Server... 6 | ollama run mistral 7 | -------------------------------------------------------------------------------- /loc: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # cloc is a Mac OS Utility 3 | echo 'cloc src' 4 | cloc src 5 | -------------------------------------------------------------------------------- /logback-spring-appenders-json-logstash.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | logstash-host:5000 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 5000 24 | 60000 25 | 26 | 27 | 28 | 5000 29 | 30 | 31 | 5000 32 | 33 | 34 | -------------------------------------------------------------------------------- /logback-spring-scope.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /multi-user-chat-memory.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/multi-user-chat-memory.db -------------------------------------------------------------------------------- /publicKey.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PUBLIC KEY----- 2 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuMe7lt33gNnyyjLMXzG/ 3 | mglX62JR1nEVfkh9Wfn4HBDvZVnWAm05wYim0aWSgdsqrX2glPT8RXzcv3TuHqEx 4 | MjiwFLVHRovO2Ne9JNukCvfo/XqPI6pa75MWFZLPlE006nMJaN5i0ZIBtr8KKsfO 5 | +oTHr/QLsqjB+x8lig1cvKIcwXA+7ZkYr9qlhDtM0TeaUYHlodJVXCnyLKquqzTB 6 | sodKj+Mkt7lSsKAVF/5fPTidAeR7rQarChLicgkTlpVu0xxGbgi4m7BLVFEb6Ku5 7 | a0uzk8S9Xwowd1IothE9EabqwMPB9H30zBijVmPAjTsZoIfdl/JuFKh3EjDANkBG 8 | NwIDAQAB 9 | -----END RSA PUBLIC KEY----- 10 | -------------------------------------------------------------------------------- /run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | echo "Starting `getServiceName` Microservice" 6 | export JDK_JAVA_OPTIONS="--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED" 7 | runMode=$1 8 | # Check if the runMode is null or not one of "dev", "prod", or "staging" 9 | if [[ -z $runMode || ($runMode != "dev" && $runMode != "prod" && $runMode != "staging") ]] 10 | then 11 | runMode="dev" 12 | fi 13 | echo "App running with profile = $runMode" 14 | 15 | # Run Maven Command 16 | # mvn spring-boot:run -Dspring-boot.run.profiles=$runMode 17 | 18 | # Run Java command 19 | echo "java -jar target/ai-service-*-spring-boot.jar --spring.profiles.active=$runMode" 20 | java -jar target/ai-service-*-spring-boot.jar --spring.profiles.active=$runMode 21 | -------------------------------------------------------------------------------- /src/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | ################################################################# 2 | # 3 | # Microservice Container Template 4 | # (C) MetaMagic Global Inc, NJ, USA, 2022 5 | # Apache 2.0 License 6 | # 7 | # Container Name: ms-cache-service 8 | # 9 | # Microservices Containers - SpringBoot 2.7.0 / Java 17 10 | # 11 | # Version 0.1 12 | ################################################################# 13 | # Base Version 14 | #FROM metamagic/java:8 15 | FROM metamagic/java:17 16 | 17 | LABEL author="Araf Karsh Hamid " 18 | 19 | RUN mkdir /Softwares/service 20 | RUN mkdir /Softwares/service/libs 21 | RUN mkdir /home/poduser/libs 22 | 23 | ARG SPRINGBOOT_JAR=ms-cache-service-spring-boot.jar 24 | ARG MAVEN_JAR=ms-cache-service-thin.jar 25 | 26 | # Copy Service (Install) 27 | # COPY --chown=poduser:poduser StartService /Softwares/service/ 28 | COPY --chown=poduser:poduser application.properties /home/poduser/ 29 | COPY --chown=poduser:poduser application.properties /Softwares/service/ 30 | # SpringBoot Fat Jar 31 | COPY --chown=poduser:poduser ${SPRINGBOOT_JAR} /Softwares/service/ 32 | 33 | # Maven Thin Jar 34 | #COPY --chown=poduser:poduser ${MAVEN_JAR} /Softwares/service/ 35 | #COPY --chown=poduser:poduser /libs /Softwares/service/libs/ 36 | #COPY --chown=poduser:poduser /libs /home/poduser/libs/ 37 | 38 | # Change the Mode 39 | RUN chmod -R 750 /Softwares/service/* 40 | 41 | # Expose Microservice Port 42 | EXPOSE 9090 43 | 44 | USER poduser 45 | 46 | # Start Microservice 47 | #ENTRYPOINT ["java","-jar","/Softwares/service/ms-cache-service-thin.jar"] 48 | ENTRYPOINT ["java","-jar","/Softwares/service/ms-cache-service-spring-boot.jar"] 49 | 50 | -------------------------------------------------------------------------------- /src/docker/README.MD: -------------------------------------------------------------------------------- 1 | # Create Docker Container 2 | 3 | ## Step 1 - Verify Container Name and Org Name 4 | 5 | 1. Verify the Org Name in src/main/resources/app.props.tmpl file (service.org) 6 | 2. Verify the container name in src/main/resources/app.props.tmpl file (service.container) 7 | 3. Verify the microservice name in src/main/resources/app.props.tmpl file (service.api.name) 8 | 9 | ## Step 2 - Build the image 10 | 11 | 1. build (Build the Container) 12 | 2. scan (Scan the container for vulnerabilities) 13 | 14 | ## Step 3 - Test the image 15 | 16 | 1. start (Start the Container) 17 | 2. logs (to view the container logs) - Wait for the Container to Startup 18 | 3. Check the URL in a Browser 19 | 20 | ## Step 4 - Push the image to Cloud Repo 21 | 22 | 1. push (Push the image to Cloud) 23 | 24 | ## Other Commands 25 | 26 | 1. stop (Stop the Container) 27 | 2. stats (show container stats) 28 | -------------------------------------------------------------------------------- /src/docker/application-dev.properties: -------------------------------------------------------------------------------- 1 | # ======================================================================= 2 | # Ai Server Properties 3 | # ======================================================================= 4 | server.port=19090 5 | # ------------------------------------------------------------------------ 6 | # Log Details 7 | # ------------------------------------------------------------------------ 8 | server.dev.mode=true 9 | logging.level.root=INFO 10 | spring.application.name=ai-service 11 | # ======================================================================= 12 | # H2 DB Properties 13 | # ======================================================================= 14 | db.server=mem 15 | db.port=5432 16 | db.name=ai_324 17 | db.schema=ms_schema 18 | db.vendor=H2 19 | # To Store the Data in File 20 | #spring.datasource.url=jdbc:h2:file:/data/demo 21 | spring.datasource.url=jdbc:h2:${db.server}:${db.name};DB_CLOSE_ON_EXIT=FALSE 22 | spring.datasource.driverClassName=org.h2.Driver 23 | spring.datasource.username=sa 24 | spring.datasource.password=ENC(lA6JCEpK7+wuHDpB1A41DOUfn6L74DQxaazXLTjyQHY5/X6CONfUEyDt6erWifrN) 25 | spring.jpa.database-platform=org.hibernate.dialect.H2Dialect 26 | # ======================================================================= 27 | # Enabling H2 Console 28 | # ======================================================================= 29 | spring.h2.console.enabled=true 30 | spring.h2.console.path=/h2-ui 31 | spring.h2.console.settings.trace=false 32 | spring.h2.console.settings.web-allow-others=false 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/docker/application-prod.properties: -------------------------------------------------------------------------------- 1 | # ======================================================================= 2 | # Ai Server Properties 3 | # ======================================================================= 4 | server.port=19090 5 | # ------------------------------------------------------------------------ 6 | # Log Details 7 | # ------------------------------------------------------------------------ 8 | server.dev.mode=true 9 | logging.level.root=INFO 10 | spring.application.name=ai-service 11 | # ======================================================================= 12 | # PostgreSQL DB Properties - 13 | # ======================================================================= 14 | db.server=localhost 15 | db.port=5433 16 | db.name=ai_324 17 | db.schema=ms_schema 18 | db.vendor=PostgreSQL 19 | spring.datasource.url=jdbc:postgresql://${db.server}:${db.port}/${db.name} 20 | spring.datasource.driverClassName=org.postgresql.ds.PGSimpleDataSource 21 | spring.datasource.username=postgres 22 | spring.datasource.password=2023.Sigma 23 | spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 24 | spring.datasource.hikari.connection-test-query=SELECT 1 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/docker/application-staging.properties: -------------------------------------------------------------------------------- 1 | # ======================================================================= 2 | # Ai Server Properties 3 | # ======================================================================= 4 | server.port=19090 5 | # ------------------------------------------------------------------------ 6 | # Log Details 7 | # ------------------------------------------------------------------------ 8 | server.dev.mode=true 9 | logging.level.root=INFO 10 | spring.application.name=ai-service 11 | # ======================================================================= 12 | # PostgreSQL DB Properties - 13 | # ======================================================================= 14 | db.server=localhost 15 | db.port=5433 16 | db.name=ai_324 17 | db.schema=ms_schema 18 | db.vendor=PostgreSQL 19 | spring.datasource.url=jdbc:postgresql://${db.server}:${db.port}/${db.name} 20 | spring.datasource.driverClassName=org.postgresql.ds.PGSimpleDataSource 21 | spring.datasource.username=postgres 22 | spring.datasource.password=2023.Sigma 23 | spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 24 | spring.datasource.hikari.connection-test-query=SELECT 1 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/docker/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | # Build Container 6 | # ------------------------------------------------------------------------------------------- 7 | ORG=$1 8 | SERVICE=$2 9 | if test "$#" -lt 1; then 10 | echo "Extracting ORG and Service Names..." 11 | # Get the Org Name and Container Name from Properties file 12 | cd ../../ 13 | ORG=`getServiceName 1` 14 | SERVICE=`getServiceName 4` 15 | cd src/docker 16 | fi 17 | echo "Building Containr for $ORG/$SERVICE ......." 18 | # Replace Mock Service Container name with actual Container name 19 | cp Dockerfile-r Dockerfile 20 | sed -i -r "s/mock-service/$SERVICE/g" Dockerfile 21 | # Build Container 22 | echo "docker build --force-rm -f Dockerfile -t $ORG/$SERVICE . " 23 | docker build --force-rm -f Dockerfile -t $ORG/$SERVICE . 24 | cd ../../ 25 | -------------------------------------------------------------------------------- /src/docker/logs: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | # Check Container Logs 6 | # ------------------------------------------------------------------------------------------- 7 | ORG=$1 8 | SERVICE=$2 9 | if test "$#" -lt 1; then 10 | echo "Extracting ORG and Service Names..." 11 | # Get the Org Name and Container Name from Properties file 12 | cd ../../ 13 | ORG=`getServiceName 1` 14 | SERVICE=`getServiceName 4` 15 | cd src/docker 16 | fi 17 | CID=`cat $SERVICE.cid` 18 | echo "Checking logs for Container = $SERVICE and Container ID = $CID" 19 | docker logs $CID 20 | -------------------------------------------------------------------------------- /src/docker/mock-service.cid.old: -------------------------------------------------------------------------------- 1 | 4b9869772370 2 | -------------------------------------------------------------------------------- /src/docker/ms-cache-service.cid.old: -------------------------------------------------------------------------------- 1 | ff0f2f5f3c91 2 | -------------------------------------------------------------------------------- /src/docker/push: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | # Push Container 6 | # ------------------------------------------------------------------------------------------- 7 | ORG=$1 8 | SERVICE=$2 9 | if test "$#" -lt 1; then 10 | echo "Extracting ORG and Service Names..." 11 | # Get the Org Name and Container Name from Properties file 12 | cd ../../ 13 | ORG=`getServiceName 1` 14 | SERVICE=`getServiceName 4` 15 | cd src/docker 16 | fi 17 | echo "docker push $ORG/$SERVICE" 18 | docker push $ORG/$SERVICE 19 | -------------------------------------------------------------------------------- /src/docker/scan: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | # Scan Container for Vulnerabilities 6 | # ------------------------------------------------------------------------------------------- 7 | ORG=$1 8 | SERVICE=$2 9 | if test "$#" -lt 1; then 10 | echo "Extracting ORG and Service Names..." 11 | # Get the Org Name and Container Name from Properties file 12 | cd ../../ 13 | ORG=`getServiceName 1` 14 | SERVICE=`getServiceName 4` 15 | cd src/docker 16 | fi 17 | echo "Scanning $SERVICE for vulnerabilities" 18 | docker scan $ORG/$SERVICE 19 | -------------------------------------------------------------------------------- /src/docker/shell: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | # Shell Container 6 | # ------------------------------------------------------------------------------------------- 7 | ORG=$1 8 | SERVICE=$2 9 | if test "$#" -lt 1; then 10 | echo "Extracting ORG and Service Names..." 11 | # Get the Org Name and Container Name from Properties file 12 | cd ../../ 13 | ORG=`getServiceName 1` 14 | SERVICE=`getServiceName 4` 15 | cd src/docker 16 | fi 17 | echo "docker container exec -it $SERVICE bash" 18 | docker container exec -it $SERVICE bash 19 | -------------------------------------------------------------------------------- /src/docker/shellrun: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | # Shell Container 6 | # ------------------------------------------------------------------------------------------- 7 | ORG=$1 8 | SERVICE=$2 9 | if test "$#" -lt 1; then 10 | echo "Extracting ORG and Service Names..." 11 | # Get the Org Name and Container Name from Properties file 12 | cd ../../ 13 | ORG=`getServiceName 1` 14 | SERVICE=`getServiceName 4` 15 | cd src/docker 16 | fi 17 | echo "docker container run -it $ORG/$SERVICE bash" 18 | docker container run -it $ORG/$SERVICE bash 19 | -------------------------------------------------------------------------------- /src/docker/start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | # Start Container 6 | # ------------------------------------------------------------------------------------------- 7 | PORT=9090 8 | ORG=$1 9 | SERVICE=$2 10 | API=$3 11 | if test "$#" -lt 1; then 12 | echo "Extracting ORG and Service Names..." 13 | # Get the Org Name and Container Name from Properties file 14 | cd ../../ 15 | ORG=`getServiceName 1` 16 | SERVICE=`getServiceName 4` 17 | API=`getServiceName 3` 18 | cd src/docker 19 | fi 20 | echo "docker container run --name $SERVICE -d --rm -p $PORT:9090 $ORG/$SERVICE" 21 | docker container run --name $SERVICE -d --rm -p $PORT:9090 $ORG/$SERVICE 22 | echo "Checkout API: http://localhost:$PORT/api/v1/$API/swagger-ui.html" 23 | echo "Container id for $SERVICE ="`docker container ls | grep $SERVICE | tr -s " " | cut -d " " -f 1` 24 | docker container ls | grep $SERVICE | tr -s " " | cut -d " " -f 1 > $SERVICE.cid 25 | -------------------------------------------------------------------------------- /src/docker/startService: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Starting the MicroService" 3 | java -jar *spring-bbot.jar 4 | -------------------------------------------------------------------------------- /src/docker/stats: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | # Container Stats (CPU, Memory) 6 | # ------------------------------------------------------------------------------------------- 7 | ORG=$1 8 | SERVICE=$2 9 | if test "$#" -lt 1; then 10 | echo "Extracting ORG and Service Names..." 11 | # Get the Org Name and Container Name from Properties file 12 | cd ../../ 13 | ORG=`getServiceName 1` 14 | SERVICE=`getServiceName 4` 15 | cd src/docker 16 | fi 17 | CID=`cat $SERVICE.cid` 18 | docker stats $CID 19 | -------------------------------------------------------------------------------- /src/docker/stop: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ------------------------------------------------------------------------------------------- 3 | # @author: Araf Karsh Hamid 4 | # ------------------------------------------------------------------------------------------- 5 | # Stop Container 6 | # ------------------------------------------------------------------------------------------- 7 | ORG=$1 8 | SERVICE=$2 9 | if test "$#" -lt 1; then 10 | echo "Extracting ORG and Service Names..." 11 | # Get the Org Name and Container Name from Properties file 12 | cd ../../ 13 | ORG=`getServiceName 1` 14 | SERVICE=`getServiceName 4` 15 | cd src/docker 16 | fi 17 | echo "docker container stop $SERVICE" 18 | docker container stop $SERVICE 19 | mv $SERVICE.cid $SERVICE.cid.old 20 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/adapters/repository/CountryRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2021 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.adapters.repository; 17 | 18 | import io.fusion.air.microservice.domain.entities.example.CountryEntity; 19 | import org.springframework.data.jpa.repository.JpaRepository; 20 | import org.springframework.stereotype.Repository; 21 | 22 | /** 23 | * @author: Araf Karsh Hamid 24 | * @version: 25 | * @date: 26 | */ 27 | @Repository 28 | public interface CountryRepository extends JpaRepository { 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/adapters/security/core/UserRole.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.adapters.security.core; 17 | 18 | /** 19 | * These Roles are compared with Role Defined in the JWT Token 20 | * 21 | * User Roles refactored on Dec 18, 2024. 22 | * All the Roles names were capitalized to match the coding standards. 23 | * 24 | * @author: Araf Karsh Hamid 25 | * @version: 26 | * @date: 27 | */ 28 | public enum UserRole { 29 | USER, 30 | ADMIN, 31 | PUBLIC 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/adapters/security/jwt/AuthorizationRequired.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.adapters.security.jwt; 17 | 18 | import java.lang.annotation.Retention; 19 | import java.lang.annotation.RetentionPolicy; 20 | 21 | /** 22 | * @author: Araf Karsh Hamid 23 | * @version: 24 | * @date: 25 | */ 26 | @Retention(RetentionPolicy.RUNTIME) 27 | public @interface AuthorizationRequired { 28 | 29 | // Role Name 30 | String role(); 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/adapters/security/jwt/SingleTokenAuthorizationRequired.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.adapters.security.jwt; 17 | 18 | import java.lang.annotation.Retention; 19 | import java.lang.annotation.RetentionPolicy; 20 | 21 | /** 22 | * @author: Araf Karsh Hamid 23 | * @version: 24 | * @date: 25 | */ 26 | @Retention(RetentionPolicy.RUNTIME) 27 | public @interface SingleTokenAuthorizationRequired { 28 | 29 | // Role Name 30 | String role(); 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/adapters/security/jwt/ValidateRefreshToken.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.adapters.security.jwt; 17 | 18 | import java.lang.annotation.Retention; 19 | import java.lang.annotation.RetentionPolicy; 20 | 21 | /** 22 | * @author: Araf Karsh Hamid 23 | * @version: 24 | * @date: 25 | */ 26 | @Retention(RetentionPolicy.RUNTIME) 27 | public @interface ValidateRefreshToken { 28 | 29 | // Role Name 30 | String role(); 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/core/assistants/Assistant.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.core.assistants; 17 | 18 | import dev.langchain4j.service.MemoryId; 19 | import dev.langchain4j.service.UserMessage; 20 | 21 | /** 22 | * @author: Araf Karsh Hamid 23 | * @version: 24 | * @date: 25 | */ 26 | public interface Assistant { 27 | 28 | /** 29 | * Chat Conversation 30 | * @param userMessage 31 | * @return 32 | */ 33 | public String chat(@UserMessage String userMessage); 34 | 35 | /** 36 | * Chat Memory with a Memory ID 37 | * 38 | * @param memoryId 39 | * @param userMessage 40 | * @return 41 | */ 42 | public String chat(@MemoryId String memoryId, @UserMessage String userMessage); 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/core/assistants/ChefAssistant.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.core.assistants; 17 | 18 | import io.fusion.air.microservice.ai.genai.core.models.Recipe; 19 | import io.fusion.air.microservice.ai.genai.core.prompts.StructuredPromptRecipe; 20 | 21 | /** 22 | * @author: Araf Karsh Hamid 23 | * @version: 24 | * @date: 25 | */ 26 | public interface ChefAssistant { 27 | 28 | /** 29 | * Create Recipe from the Ingredients 30 | * @param ingredients 31 | * @return 32 | */ 33 | public Recipe createRecipeFrom(String... ingredients); 34 | 35 | /** 36 | * Create Recipe using a Structured Prompt 37 | * @param promptRecipe 38 | * @return 39 | */ 40 | public Recipe createRecipe(StructuredPromptRecipe promptRecipe); 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/core/assistants/PatientDataExtractorAssistant.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.core.assistants; 17 | 18 | import dev.langchain4j.service.UserMessage; 19 | import io.fusion.air.microservice.ai.genai.core.models.Patient; 20 | 21 | /** 22 | * Extracts Patient Id from the text 23 | * 24 | * @author: Araf Karsh Hamid 25 | * @version: 26 | * @date: 27 | */ 28 | public interface PatientDataExtractorAssistant { 29 | 30 | @UserMessage("Extract Patient ID from {{it}}") 31 | public long extractPatientId(String text); 32 | 33 | // POJO Extractor 34 | @UserMessage("Extract the Patient Name from {{it}}") 35 | public Patient extractPatientNameFrom(String text); 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/core/assistants/SentimentAssistant.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.core.assistants; 17 | 18 | import dev.langchain4j.service.UserMessage; 19 | 20 | import io.fusion.air.microservice.ai.genai.core.models.Sentiment; 21 | 22 | /** 23 | * Sentiment Analyzer 24 | * 25 | * @author: Araf Karsh Hamid 26 | * @version: 27 | * @date: 28 | */ 29 | public interface SentimentAssistant { 30 | 31 | /** 32 | * Analyze Sentiment of a Text 33 | * @param text 34 | * @return 35 | */ 36 | @UserMessage("Analyze sentiment of {{it}}") 37 | public Sentiment analyzeSentimentOf(String text); 38 | 39 | /** 40 | * Returns True if the Sentiment is Positive 41 | * @param text 42 | * @return 43 | */ 44 | @UserMessage("Does {{it}} have a positive sentiment?") 45 | public boolean isPositive(String text); 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/core/models/CustomerServiceCategory.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.core.models; 17 | 18 | /** 19 | * Customer Service Category Enum 20 | * @author: Araf Karsh Hamid 21 | * @version: 22 | * @date: 23 | */ 24 | public enum CustomerServiceCategory { 25 | 26 | BILLING_AND_PAYMENTS, 27 | TECHNICAL_SUPPORT, 28 | ACCOUNT_MANAGEMENT, 29 | PRODUCT_INFORMATION, 30 | ORDER_STATUS, 31 | RETURNS_AND_EXCHANGES, 32 | FEEDBACK_AND_COMPLAINTS 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/core/models/Sentiment.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.core.models; 17 | 18 | /** 19 | * @author: Araf Karsh Hamid 20 | * @version: 21 | * @date: 22 | */ 23 | public enum Sentiment { 24 | 25 | POSITIVE, 26 | NEUTRAL, 27 | NEGATIVE; 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/core/prompts/StructuredPromptFeelings.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.core.prompts; 17 | 18 | import dev.langchain4j.model.input.structured.StructuredPrompt; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | @StructuredPrompt({ 26 | "Convey the feelings {{feeling}} based on the content {{content}}.", 27 | "Structure your answer in the following way:", 28 | "Feeling: ...", 29 | "Key points: ...", 30 | "Explanation: ..." 31 | }) 32 | public class StructuredPromptFeelings { 33 | 34 | private final String feeling; 35 | private final String content; 36 | 37 | /** 38 | * @param feeling 39 | * @param content 40 | */ 41 | public StructuredPromptFeelings(String feeling, String content) { 42 | this.feeling = feeling; 43 | this.content = content; 44 | } 45 | 46 | public String getFeeling() { 47 | return feeling; 48 | } 49 | 50 | public String getContent() { 51 | return content; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/core/tools/CalculatorTool.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.core.tools; 17 | 18 | import dev.langchain4j.agent.tool.Tool; 19 | import io.fusion.air.microservice.utils.Std; 20 | 21 | /** 22 | * Calculator Tool Implementation 23 | * 24 | * @author: Araf Karsh Hamid 25 | * @version: 26 | * @date: 27 | */ 28 | public class CalculatorTool { 29 | 30 | @Tool("Calculates the length of a string") 31 | public int stringLength(String s) { 32 | Std.println("Called stringLength() with s='" + s + "'"); 33 | return s.length(); 34 | } 35 | 36 | @Tool("Calculates the sum of two numbers") 37 | public int add(int a, int b) { 38 | Std.println("Called add() with a=" + a + ", b=" + b); 39 | return a + b; 40 | } 41 | 42 | @Tool("Calculates the square root of a number") 43 | public double sqrt(int x) { 44 | Std.println("Called sqrt() with x=" + x); 45 | return Math.sqrt(x); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/core/tools/DateTimeTool.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.core.tools; 17 | 18 | import dev.langchain4j.agent.tool.Tool; 19 | import io.fusion.air.microservice.ai.genai.core.assistants.HAL9000Assistant; 20 | import org.springframework.stereotype.Component; 21 | 22 | import java.time.LocalTime; 23 | 24 | /** 25 | * Date & Time Tool Implementation 26 | * @author: Araf Karsh Hamid 27 | * @version: 28 | * @date: 29 | */ 30 | @Component 31 | public class DateTimeTool { 32 | 33 | /** 34 | * This tool is available to {@link HAL9000Assistant} 35 | */ 36 | @Tool 37 | public String currentTime() { 38 | return LocalTime.now().toString(); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/examples/falcon/_01_Hello_World.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.examples.falcon; 17 | 18 | import dev.langchain4j.model.chat.ChatLanguageModel; 19 | import io.fusion.air.microservice.ai.genai.utils.AiBeans; 20 | import io.fusion.air.microservice.ai.genai.utils.AiConstants; 21 | 22 | /** 23 | * @author: Araf Karsh Hamid 24 | * @version: 25 | * @date: 26 | */ 27 | public class _01_Hello_World { 28 | 29 | public static void main(String[] args) { 30 | // Create Chat Language Model Google Falcon 3 31 | ChatLanguageModel model = AiBeans.getChatLanguageModelLlama(AiConstants.OLLAMA_FALCON); 32 | AiBeans.printModelDetails(AiConstants.LLM_OLLAMA, AiConstants.OLLAMA_FALCON); 33 | 34 | String request = "Explain French Revolution"; 35 | String response = model.generate(request); 36 | 37 | AiBeans.printResult(request, response); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/examples/gemma/_01_Hello_World.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.examples.gemma; 17 | 18 | import dev.langchain4j.model.chat.ChatLanguageModel; 19 | import io.fusion.air.microservice.ai.genai.utils.AiBeans; 20 | import io.fusion.air.microservice.ai.genai.utils.AiConstants; 21 | 22 | /** 23 | * @author: Araf Karsh Hamid 24 | * @version: 25 | * @date: 26 | */ 27 | public class _01_Hello_World { 28 | 29 | public static void main(String[] args) { 30 | // Create Chat Language Model Google Gemma 31 | ChatLanguageModel model = AiBeans.getChatLanguageModelLlama(AiConstants.OLLAMA_GEMMA); 32 | String request = "Explain French Revolution"; 33 | String response = model.generate(request); 34 | 35 | AiBeans.printModelDetails(AiConstants.LLM_OLLAMA, AiConstants.OLLAMA_GEMMA); 36 | AiBeans.printResult(request, response); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/examples/llama/_01_Hello_World.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.examples.llama; 17 | 18 | import dev.langchain4j.model.chat.ChatLanguageModel; 19 | import io.fusion.air.microservice.ai.genai.utils.AiBeans; 20 | import io.fusion.air.microservice.ai.genai.utils.AiConstants; 21 | 22 | /** 23 | * @author: Araf Karsh Hamid 24 | * @version: 25 | * @date: 26 | */ 27 | public class _01_Hello_World { 28 | 29 | public static void main(String[] args) { 30 | // Create Chat Language Model llama 31 | ChatLanguageModel model = AiBeans.getChatLanguageModelLlama(AiConstants.OLLAMA_LLAMA); 32 | String request = "Explain French Revolution"; 33 | String response = model.generate(request); 34 | AiBeans.printModelDetails(AiConstants.LLM_OLLAMA, AiConstants.OLLAMA_LLAMA); 35 | AiBeans.printResult(request, response); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/examples/mistral/_01_Hello_World.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.examples.mistral; 17 | 18 | import dev.langchain4j.model.chat.ChatLanguageModel; 19 | import io.fusion.air.microservice.ai.genai.utils.AiBeans; 20 | import io.fusion.air.microservice.ai.genai.utils.AiConstants; 21 | 22 | /** 23 | * @author: Araf Karsh Hamid 24 | * @version: 25 | * @date: 26 | */ 27 | public class _01_Hello_World { 28 | 29 | public static void main(String[] args) { 30 | // Create Chat Language Model Mistral 31 | ChatLanguageModel model = AiBeans.getChatLanguageModelLlama(AiConstants.OLLAMA_MISTRAL); 32 | String request = "Explain French Revolution"; 33 | String response = model.generate(request); 34 | 35 | AiBeans.printModelDetails(AiConstants.LLM_OLLAMA, AiConstants.OLLAMA_MISTRAL); 36 | AiBeans.printResult(request, response); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/examples/palm/_01_Hello_World.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.examples.palm; 17 | 18 | import dev.langchain4j.model.chat.ChatLanguageModel; 19 | import io.fusion.air.microservice.ai.genai.utils.AiBeans; 20 | import io.fusion.air.microservice.ai.genai.utils.AiConstants; 21 | 22 | /** 23 | * @author: Araf Karsh Hamid 24 | * @version: 25 | * @date: 26 | */ 27 | public class _01_Hello_World { 28 | 29 | public static void main(String[] args) { 30 | // Create Chat Language Model Google Vertex AI - PaLM 2 31 | ChatLanguageModel model = AiBeans.getChatLanguageModelGoogle(AiConstants.GOOGLE_PALM_CHAT_BISON); 32 | String request = "Explain French Revolution"; 33 | String response = model.generate(request); 34 | 35 | AiBeans.printModelDetails(AiConstants.LLM_VERTEX, AiConstants.GOOGLE_PALM_CHAT_BISON); 36 | AiBeans.printResult(request, response); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/examples/phi/_01_Hello_World.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.examples.phi; 17 | 18 | import dev.langchain4j.model.chat.ChatLanguageModel; 19 | import io.fusion.air.microservice.ai.genai.utils.AiBeans; 20 | import io.fusion.air.microservice.ai.genai.utils.AiConstants; 21 | 22 | /** 23 | * @author: Araf Karsh Hamid 24 | * @version: 25 | * @date: 26 | */ 27 | public class _01_Hello_World { 28 | 29 | public static void main(String[] args) { 30 | // Create Chat Language Model Microsoft PHI - 3 31 | ChatLanguageModel model = AiBeans.getChatLanguageModelLlama(AiConstants.OLLAMA_PHI); 32 | String request = "Explain French Revolution"; 33 | String response = model.generate(request); 34 | 35 | AiBeans.printModelDetails(AiConstants.LLM_OLLAMA, AiConstants.OLLAMA_PHI); 36 | AiBeans.printResult(request, response); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/genai/examples/qwen/_01_Hello_World.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.ai.genai.examples.qwen; 17 | 18 | import dev.langchain4j.model.chat.ChatLanguageModel; 19 | import io.fusion.air.microservice.ai.genai.utils.AiBeans; 20 | import io.fusion.air.microservice.ai.genai.utils.AiConstants; 21 | 22 | /** 23 | * @author: Araf Karsh Hamid 24 | * @version: 25 | * @date: 26 | */ 27 | public class _01_Hello_World { 28 | 29 | public static void main(String[] args) { 30 | // Create Chat Language Model Ollama Qwen 2.5 31 | ChatLanguageModel model = AiBeans.getChatLanguageModelLlama(AiConstants.OLLAMA_QWEN); 32 | String request = "Explain French Revolution"; 33 | String response = model.generate(request); 34 | AiBeans.printModelDetails(AiConstants.LLM_OLLAMA, AiConstants.OLLAMA_QWEN); 35 | AiBeans.printResult(request, response); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/ai/ml/nn/rnn/_01_SentimentAnalysis_Example.java: -------------------------------------------------------------------------------- 1 | package io.fusion.air.microservice.ai.ml.nn.rnn; 2 | 3 | import io.fusion.air.microservice.utils.Std; 4 | 5 | /** 6 | * @author: Araf Karsh Hamid 7 | * @version: 8 | * @date: 9 | */ 10 | public class _01_SentimentAnalysis_Example { 11 | 12 | public static void main(String[] args) { 13 | Std.println("Sentiment Analysis Example... "); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/events/AppEvent.java: -------------------------------------------------------------------------------- 1 | package io.fusion.air.microservice.domain.events; 2 | 3 | import java.time.LocalDateTime; 4 | 5 | /** 6 | * App Event 7 | * 8 | * @author arafkarsh 9 | */ 10 | public class AppEvent { 11 | 12 | private String id; 13 | private String name; 14 | private LocalDateTime eventTime; 15 | 16 | public String getId() { 17 | return id; 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public LocalDateTime getEventTime() { 25 | return eventTime; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/AuthorizationException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class AuthorizationException extends SecurityException { 26 | 27 | 28 | /** 29 | * Authorization Service Exception 30 | * @param msg 31 | */ 32 | public AuthorizationException(String msg) { 33 | super(msg); 34 | } 35 | 36 | /** 37 | * Authorization Service Exception 38 | * @param msg 39 | * @param e 40 | */ 41 | public AuthorizationException(String msg, Throwable e) { 42 | super(msg, HttpStatus.UNAUTHORIZED, e); 43 | } 44 | 45 | /** 46 | * Authorization Service Exception 47 | * @param e 48 | */ 49 | public AuthorizationException(Throwable e) { 50 | super("", HttpStatus.UNAUTHORIZED, e); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/DataNotFoundException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class DataNotFoundException extends DatabaseException { 26 | 27 | /** 28 | * DataNotFound Exception 29 | * @param msg 30 | */ 31 | public DataNotFoundException(String msg) { 32 | super(msg, HttpStatus.NOT_FOUND, null); 33 | } 34 | 35 | /** 36 | * DataNotFound Exception 37 | * @param msg 38 | * @param e 39 | */ 40 | public DataNotFoundException(String msg, Throwable e) { 41 | super(msg, HttpStatus.NOT_FOUND, e); 42 | } 43 | 44 | /** 45 | * DataNotFound Exception 46 | * @param e 47 | */ 48 | public DataNotFoundException(Throwable e) { 49 | super("Data Not Found!", HttpStatus.NOT_FOUND, e); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/DataVersionMismatchException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class DataVersionMismatchException extends DatabaseException { 26 | 27 | /** 28 | * Data Version Mismatch Exception 29 | * @param msg 30 | */ 31 | public DataVersionMismatchException(String msg) { 32 | super(msg); 33 | } 34 | 35 | /** 36 | * Data Version Mismatch Exception 37 | * @param msg 38 | * @param e 39 | */ 40 | public DataVersionMismatchException(String msg, Throwable e) { 41 | super(msg, HttpStatus.BAD_REQUEST, e); 42 | } 43 | 44 | /** 45 | * Data Version Mismatch Exception 46 | * @param e 47 | */ 48 | public DataVersionMismatchException(Throwable e) { 49 | super("Duplicate Data Exception!", HttpStatus.BAD_REQUEST, e); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/DuplicateDataException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class DuplicateDataException extends DatabaseException { 26 | 27 | /** 28 | * DuplicateData Exception 29 | * @param msg 30 | */ 31 | public DuplicateDataException(String msg) { 32 | super(msg); 33 | } 34 | 35 | /** 36 | * DuplicateData Exception 37 | * @param msg 38 | * @param e 39 | */ 40 | public DuplicateDataException(String msg, Throwable e) { 41 | super(msg, HttpStatus.BAD_REQUEST, e); 42 | } 43 | 44 | /** 45 | * DuplicateData Exception 46 | * @param e 47 | */ 48 | public DuplicateDataException(Throwable e) { 49 | super("Duplicate Data Exception!", HttpStatus.BAD_REQUEST, e); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/InputDataException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class InputDataException extends BusinessServiceException { 26 | 27 | /** 28 | * Input Data Exception 29 | */ 30 | public InputDataException(String msg) { 31 | super(msg); 32 | } 33 | 34 | /** 35 | * Input Data Exception 36 | * @param msg 37 | * @param e 38 | */ 39 | public InputDataException(String msg, Throwable e) { 40 | super(msg, HttpStatus.BAD_REQUEST, e); 41 | } 42 | 43 | /** 44 | * Input Data Exception 45 | * @param e 46 | */ 47 | public InputDataException(Throwable e) { 48 | super("Invalid Input!", HttpStatus.BAD_REQUEST, e); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/InvalidInputException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class InvalidInputException extends BusinessServiceException { 26 | 27 | /** 28 | * Input Data Exception 29 | */ 30 | public InvalidInputException(String msg) { 31 | super(msg); 32 | } 33 | 34 | /** 35 | * Input Data Exception 36 | * @param msg 37 | * @param e 38 | */ 39 | public InvalidInputException(String msg, Throwable e) { 40 | super(msg, HttpStatus.BAD_REQUEST, e); 41 | } 42 | 43 | /** 44 | * Input Data Exception 45 | * @param e 46 | */ 47 | public InvalidInputException(Throwable e) { 48 | super("Invalid Input!", HttpStatus.BAD_REQUEST, e); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/JWTInvalidSignatureException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class JWTInvalidSignatureException extends SecurityException { 26 | 27 | 28 | /** 29 | * JWT UnDefined Exception - FORBIDDEN 30 | * @param msg 31 | */ 32 | public JWTInvalidSignatureException(String msg) { 33 | this(msg, null); 34 | } 35 | 36 | /** 37 | * JWT UnDefined Exception - FORBIDDEN 38 | * @param msg 39 | * @param e 40 | */ 41 | public JWTInvalidSignatureException(String msg, Throwable e) { 42 | super(msg, HttpStatus.FORBIDDEN, e); 43 | } 44 | 45 | /** 46 | * JWT UnDefined Exception - FORBIDDEN 47 | * @param e 48 | */ 49 | public JWTInvalidSignatureException(Throwable e) { 50 | super("", HttpStatus.FORBIDDEN, e); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/JWTTokenExpiredException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class JWTTokenExpiredException extends SecurityException { 26 | 27 | 28 | /** 29 | * JWT Token Expired Exception - FORBIDDEN 30 | * @param msg 31 | */ 32 | public JWTTokenExpiredException(String msg) { 33 | this(msg, null); 34 | } 35 | 36 | /** 37 | * JWT Token Expired Exception - FORBIDDEN 38 | * @param msg 39 | * @param e 40 | */ 41 | public JWTTokenExpiredException(String msg, Throwable e) { 42 | super(msg, HttpStatus.FORBIDDEN, e); 43 | } 44 | 45 | /** 46 | * JWT Token Expired Exception - FORBIDDEN 47 | * @param e 48 | */ 49 | public JWTTokenExpiredException(Throwable e) { 50 | super("", HttpStatus.FORBIDDEN, e); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/JWTTokenExtractionException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class JWTTokenExtractionException extends SecurityException { 26 | 27 | 28 | /** 29 | * JWT Token Extraction Exception - FORBIDDEN 30 | * @param msg 31 | */ 32 | public JWTTokenExtractionException(String msg) { 33 | this(msg, null); 34 | } 35 | 36 | /** 37 | * JWT Token Extraction Exception - FORBIDDEN 38 | * @param msg 39 | * @param e 40 | */ 41 | public JWTTokenExtractionException(String msg, Throwable e) { 42 | super(msg, HttpStatus.FORBIDDEN, e); 43 | } 44 | 45 | /** 46 | * JWT Token Extraction Exception - FORBIDDEN 47 | * @param e 48 | */ 49 | public JWTTokenExtractionException(Throwable e) { 50 | super("", HttpStatus.FORBIDDEN, e); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/JWTTokenSubjectException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class JWTTokenSubjectException extends SecurityException { 26 | 27 | 28 | /** 29 | * JWT Token Subject Exception - FORBIDDEN 30 | * @param msg 31 | */ 32 | public JWTTokenSubjectException(String msg) { 33 | this(msg, null); 34 | } 35 | 36 | /** 37 | * JWT Token Subject Exception - FORBIDDEN 38 | * @param msg 39 | * @param e 40 | */ 41 | public JWTTokenSubjectException(String msg, Throwable e) { 42 | super(msg, HttpStatus.FORBIDDEN, e); 43 | } 44 | 45 | /** 46 | * JWT Token Subject Exception - FORBIDDEN 47 | * @param e 48 | */ 49 | public JWTTokenSubjectException(Throwable e) { 50 | super("", HttpStatus.FORBIDDEN, e); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/JWTUnDefinedException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class JWTUnDefinedException extends SecurityException { 26 | 27 | 28 | /** 29 | * JWT UnDefined Exception - FORBIDDEN 30 | * @param msg 31 | */ 32 | public JWTUnDefinedException(String msg) { 33 | this(msg, null); 34 | } 35 | 36 | /** 37 | * JWT UnDefined Exception - FORBIDDEN 38 | * @param msg 39 | * @param e 40 | */ 41 | public JWTUnDefinedException(String msg, Throwable e) { 42 | super(msg, HttpStatus.FORBIDDEN, e); 43 | } 44 | 45 | /** 46 | * JWT UnDefined Exception - FORBIDDEN 47 | * @param e 48 | */ 49 | public JWTUnDefinedException(Throwable e) { 50 | super("", HttpStatus.FORBIDDEN, e); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/LimitExceededException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2023 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class LimitExceededException extends BusinessServiceException { 26 | 27 | /** 28 | * Input Data Exception 29 | */ 30 | public LimitExceededException(String msg) { 31 | this(msg, null); 32 | } 33 | 34 | /** 35 | * Input Data Exception 36 | * @param msg 37 | * @param e 38 | */ 39 | public LimitExceededException(String msg, Throwable e) { 40 | super("Rate Limit Exceeded: "+msg, HttpStatus.TOO_MANY_REQUESTS, e); 41 | } 42 | 43 | /** 44 | * Input Data Exception 45 | * @param e 46 | */ 47 | public LimitExceededException(Throwable e) { 48 | super("Rate Limit Exceeded!", HttpStatus.TOO_MANY_REQUESTS, e); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/MandatoryDataRequiredException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class MandatoryDataRequiredException extends BusinessServiceException { 26 | 27 | 28 | /** 29 | * MandatoryDataRequired Service Exception 30 | * @param msg 31 | */ 32 | public MandatoryDataRequiredException(String msg) { 33 | super(msg); 34 | } 35 | 36 | /** 37 | * MandatoryDataRequired Service Exception 38 | * @param msg 39 | * @param e 40 | */ 41 | public MandatoryDataRequiredException(String msg, Throwable e) { 42 | super(msg, HttpStatus.BAD_REQUEST, e); 43 | } 44 | 45 | /** 46 | * MandatoryDataRequired Service Exception 47 | * @param e 48 | */ 49 | public MandatoryDataRequiredException(Throwable e) { 50 | super("Mandatory Data Required!", HttpStatus.BAD_REQUEST, e); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/MessagingException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class MessagingException extends AbstractServiceException { 26 | 27 | /** 28 | * Messaging Exception 29 | * @param msg 30 | */ 31 | public MessagingException(String msg) { 32 | super(msg); 33 | } 34 | 35 | /** 36 | * Messaging Exception 37 | * @param msg 38 | * @param e 39 | */ 40 | public MessagingException(String msg, Throwable e) { 41 | super(msg, HttpStatus.BAD_REQUEST, e); 42 | } 43 | 44 | /** 45 | * Messaging Exception 46 | * @param e 47 | */ 48 | public MessagingException(Throwable e) { 49 | super("Message Error!", HttpStatus.BAD_REQUEST,e); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/ResourceNotFoundException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | import org.springframework.web.bind.annotation.ResponseStatus; 20 | 21 | /** 22 | * @author: Araf Karsh Hamid 23 | * @version: 24 | * @date: 25 | */ 26 | @ResponseStatus(value = HttpStatus.NOT_FOUND) 27 | public class ResourceNotFoundException extends ResourceException { 28 | 29 | /** 30 | * ResourceNotFound Exception 31 | * @param msg 32 | */ 33 | public ResourceNotFoundException(String msg) { 34 | super(msg); 35 | } 36 | 37 | 38 | /** 39 | * ResourceNotFound Exception 40 | * @param msg 41 | * @param e 42 | */ 43 | public ResourceNotFoundException(String msg, Throwable e) { 44 | super(msg, HttpStatus.NOT_FOUND, e); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/StreamException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2023 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | /** 19 | * @author: Araf Karsh Hamid 20 | * @version: 21 | * @date: 22 | */ 23 | public class StreamException extends MessagingException { 24 | 25 | /** 26 | * Messaging Exception 27 | * @param msg 28 | */ 29 | public StreamException(String msg) { 30 | super(msg); 31 | } 32 | 33 | /** 34 | * Messaging Exception 35 | * @param msg 36 | * @param e 37 | */ 38 | public StreamException(String msg, Throwable e) { 39 | super(msg, e); 40 | } 41 | 42 | /** 43 | * Messaging Exception 44 | * @param e 45 | */ 46 | public StreamException(Throwable e) { 47 | this("Message Error!", e); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/exceptions/UnableToSaveException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.exceptions; 17 | 18 | import org.springframework.http.HttpStatus; 19 | 20 | /** 21 | * @author: Araf Karsh Hamid 22 | * @version: 23 | * @date: 24 | */ 25 | public class UnableToSaveException extends DatabaseException { 26 | 27 | /** 28 | * Unable to Save Exception 29 | * @param msg 30 | */ 31 | public UnableToSaveException(String msg) { 32 | super(msg); 33 | } 34 | 35 | /** 36 | * Unable to Save Exception 37 | * @param msg 38 | * @param e 39 | */ 40 | public UnableToSaveException(String msg, Throwable e) { 41 | super(msg, HttpStatus.BAD_REQUEST, e); 42 | } 43 | 44 | /** 45 | * Unable to Save Exception 46 | * @param e 47 | */ 48 | public UnableToSaveException(Throwable e) { 49 | super("Unable to Save Data!", HttpStatus.BAD_REQUEST, e); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/models/core/StandardResponse.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.models.core; 17 | 18 | /** 19 | * @author: Araf Karsh Hamid 20 | * @version: 21 | * @date: 22 | */ 23 | public class StandardResponse extends AbstractResponse { 24 | 25 | /** 26 | * Return Standard Response with OK Status. 27 | * @return 28 | */ 29 | public static StandardResponse OK() { 30 | return (StandardResponse) new StandardResponse().initSuccess( "200", "Request Completed!"); 31 | } 32 | 33 | /** 34 | * Returns Standard Response with ERROR Status 35 | * @return 36 | */ 37 | public static StandardResponse ERROR() { 38 | return (StandardResponse) new StandardResponse().initFailure( "400", "Request Failed!"); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/models/example/CardType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2021 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.models.example; 17 | 18 | /** 19 | * 20 | * @author arafkarsh 21 | * 22 | */ 23 | public enum CardType { 24 | 25 | /** 26 | * Master Card Payment 27 | */ 28 | MASTER, 29 | /** 30 | * Visa Card Payment 31 | */ 32 | VISA, 33 | /** 34 | * Discover Payment 35 | */ 36 | DISCOVER, 37 | /** 38 | * American Express Payment 39 | */ 40 | AMERICAN_EXPRESS; 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/models/example/PaymentType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2021 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.models.example; 17 | 18 | /** 19 | * 20 | * @author arafkarsh 21 | * 22 | */ 23 | public enum PaymentType { 24 | 25 | /** 26 | * Credit Card Payment 27 | */ 28 | CREDIT_CARD, 29 | /** 30 | * Debit Card Payment 31 | */ 32 | DEBIT_CARD, 33 | /** 34 | * NetBanking Payment 35 | */ 36 | NET_BANKING, 37 | /** 38 | * UPI Payment 39 | */ 40 | UPI, 41 | /** 42 | * Paytm Payment 43 | */ 44 | PAYTM, 45 | /** 46 | * Google Pay 47 | */ 48 | GOOGLE_PAY; 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/ports/controllers/PaymentController.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.ports.controllers; 17 | 18 | /** 19 | * App Controller 20 | * 21 | * @author arafkarsh 22 | */ 23 | public interface PaymentController { 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/ports/controllers/ProductController.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.ports.controllers; 17 | 18 | /** 19 | * App Controller 20 | * 21 | * @author arafkarsh 22 | */ 23 | public interface ProductController { 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/ports/services/AppService.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.ports.services; 17 | 18 | /** 19 | * App Service 20 | * 21 | * @author arafkarsh 22 | */ 23 | public interface AppService { 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/ports/services/ChatMessageService.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2024 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.domain.ports.services; 17 | 18 | import io.fusion.air.microservice.domain.entities.example.ChatMessageEntity; 19 | 20 | import java.util.List; 21 | 22 | /** 23 | * @author: Araf Karsh Hamid 24 | * @version: 25 | * @date: 26 | */ 27 | public interface ChatMessageService { 28 | 29 | /** 30 | * Returns List of Chat Messages from ChatMessages 31 | * 32 | * @param userId 33 | * @return 34 | */ 35 | public List fetchByUserId(String userId); 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/domain/ports/services/CountryService.java: -------------------------------------------------------------------------------- 1 | package io.fusion.air.microservice.domain.ports.services; 2 | 3 | import io.fusion.air.microservice.domain.entities.example.CountryEntity; 4 | import java.util.List; 5 | 6 | /** 7 | * @author: Araf Karsh Hamid 8 | * @version: 9 | * @date: 10 | */ 11 | public interface CountryService { 12 | 13 | /** 14 | * Returns all the Countryy 15 | * @return 16 | */ 17 | public List getAllCountries(); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/server/config/CacheDefaultConfig.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2023 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.server.config; 17 | 18 | import org.springframework.cache.CacheManager; 19 | import org.springframework.cache.annotation.EnableCaching; 20 | import org.springframework.cache.concurrent.ConcurrentMapCacheManager; 21 | import org.springframework.context.annotation.Bean; 22 | import org.springframework.context.annotation.Configuration; 23 | 24 | /** 25 | * @author: Araf Karsh Hamid 26 | * @version: 27 | * @date: 28 | */ 29 | 30 | @Configuration 31 | @EnableCaching 32 | public class CacheDefaultConfig { 33 | 34 | public static final String RATE_LIMIT_CACHE = "RateLimitCache"; 35 | 36 | @Bean(name="rateLimitCacheManager") 37 | public CacheManager cacheManager() { 38 | return new ConcurrentMapCacheManager(RATE_LIMIT_CACHE); 39 | // Redis Cache Manager 40 | // Hazelcast 41 | // JCache 42 | // EhCache 43 | // Oracle Coherence 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/server/config/WebConfiguration.java: -------------------------------------------------------------------------------- 1 | package io.fusion.air.microservice.server.config; 2 | 3 | import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; 4 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 5 | 6 | /** 7 | * This configuration is required to support Springboot 2.7.x to 3.x migration 8 | * Trailing Slash Matching Configuration 9 | * 10 | * Now the “GET /api/v1/todos/name/” doesn’t match anymore by default and will result in an HTTP 404 error. 11 | * 12 | * We can enable the trailing slash matching for all the endpoints by defining a new configuration class that 13 | * implements WebMvcConfigurer or WebFluxConfigurer (in case it's a reactive service): 14 | * 15 | * @author: Araf Karsh Hamid 16 | * @version: 17 | * @date: 18 | */ 19 | public class WebConfiguration implements WebMvcConfigurer { 20 | 21 | @Override 22 | public void configurePathMatch(PathMatchConfigurer configurer) { 23 | configurer.setUseTrailingSlashMatch(true); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/server/config/WebServerConfig.java: -------------------------------------------------------------------------------- 1 | package io.fusion.air.microservice.server.config; 2 | 3 | import org.apache.catalina.connector.Connector; 4 | import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer; 5 | import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; 6 | import org.springframework.boot.web.server.WebServerFactoryCustomizer; 7 | import org.springframework.context.annotation.Configuration; 8 | 9 | /** 10 | * Springboot 2.7.x to 3.0 Migration 11 | * 12 | * Response Header Size 13 | * The property server.max.http.header.size is deprecated in favour of server.max-http-request-header-size, which 14 | * checks only the size of the request header. 15 | * 16 | * To define a limit also for the response header, let's define a new bean. 17 | * 18 | * @author: Araf Karsh Hamid 19 | * @version: 20 | * @date: 21 | */ 22 | @Configuration 23 | public class WebServerConfig implements WebServerFactoryCustomizer { 24 | 25 | @Override 26 | public void customize(TomcatServletWebServerFactory factory) { 27 | factory.addConnectorCustomizers(new TomcatConnectorCustomizer() { 28 | @Override 29 | public void customize(Connector connector) { 30 | connector.setProperty("maxHttpResponseHeaderSize", "100000"); 31 | } 32 | }); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/server/service/ServletInitializer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2021 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.server.service; 17 | 18 | import io.fusion.air.microservice.ServiceBootStrap; 19 | import org.springframework.boot.builder.SpringApplicationBuilder; 20 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 21 | 22 | /** 23 | * SpringBootServletInitializer is an interface to run SpringApplication 24 | * from a traditional WAR deployment. It binds Servlet, Filter and 25 | * ServletContextInitializer beans from the application context to the 26 | * server 27 | * 28 | * @author arafkarsh 29 | * 30 | */ 31 | public class ServletInitializer extends SpringBootServletInitializer { 32 | 33 | /** 34 | * 35 | */ 36 | @Override 37 | protected SpringApplicationBuilder configure( SpringApplicationBuilder application) { 38 | return application.sources(ServiceBootStrap.class); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/server/service/examples/EchoAppService.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2021 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.server.service.examples; 17 | 18 | 19 | import io.fusion.air.microservice.server.models.EchoResponseData; 20 | import org.springframework.stereotype.Service; 21 | import org.springframework.web.context.annotation.ApplicationScope; 22 | 23 | /** 24 | * @author: Araf Karsh Hamid 25 | * @version: 26 | * @date: 27 | */ 28 | @Service 29 | @ApplicationScope 30 | public class EchoAppService { 31 | 32 | private EchoResponseData echoData; 33 | 34 | public void setEchoData(EchoResponseData data) { 35 | echoData = data; 36 | } 37 | 38 | public EchoResponseData getEchoData() { 39 | return echoData; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/server/service/examples/EchoService.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2021 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.server.service.examples; 17 | 18 | 19 | import io.fusion.air.microservice.server.models.EchoResponseData; 20 | import org.springframework.stereotype.Service; 21 | import org.springframework.web.context.annotation.RequestScope; 22 | 23 | /** 24 | * @author: Araf Karsh Hamid 25 | * @version: 26 | * @date: 27 | */ 28 | @Service 29 | @RequestScope 30 | public class EchoService { 31 | 32 | private EchoResponseData echoData; 33 | 34 | public void setEchoData(EchoResponseData data) { 35 | echoData = data; 36 | } 37 | 38 | public EchoResponseData getEchoData() { 39 | return echoData; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/server/service/examples/EchoSessionService.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2021 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.server.service.examples; 17 | 18 | 19 | import io.fusion.air.microservice.server.models.EchoResponseData; 20 | import org.springframework.stereotype.Service; 21 | import org.springframework.web.context.annotation.SessionScope; 22 | 23 | /** 24 | * @author: Araf Karsh Hamid 25 | * @version: 26 | * @date: 27 | */ 28 | @Service 29 | @SessionScope 30 | public class EchoSessionService { 31 | 32 | private EchoResponseData echoData; 33 | 34 | public void setEchoData(EchoResponseData data) { 35 | echoData = data; 36 | } 37 | 38 | public EchoResponseData getEchoData() { 39 | return echoData; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/io/fusion/air/microservice/utils/DateJsonSerializer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * (C) Copyright 2022 Araf Karsh Hamid 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.fusion.air.microservice.utils; 17 | // Java 18 | 19 | import com.fasterxml.jackson.core.JsonGenerator; 20 | import com.fasterxml.jackson.databind.SerializerProvider; 21 | import com.fasterxml.jackson.databind.ser.std.StdSerializer; 22 | 23 | import java.io.IOException; 24 | import java.time.LocalDateTime; 25 | 26 | /** 27 | * @author: Araf Karsh Hamid 28 | * @version: 29 | * @date: 30 | */ 31 | public class DateJsonSerializer extends StdSerializer { 32 | private static final long serialVersionUID = -7035242849275956037L; 33 | 34 | /** 35 | * Constructor 36 | */ 37 | public DateJsonSerializer() { 38 | super(LocalDateTime.class); 39 | } 40 | 41 | /** 42 | * Serialize the date 43 | * @param value 44 | * @param gen 45 | * @param provider 46 | * @throws IOException 47 | */ 48 | @Override 49 | public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider provider) 50 | throws IOException { 51 | gen.writeString(value.toString()); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/resources/app.props.build: -------------------------------------------------------------------------------- 1 | # ======================================================================= 2 | # Ai-GenAI Service Properties 3 | # ======================================================================= 4 | build.number=258 5 | build.date=Wed Jan 8 00:15:14 IST 2025 6 | -------------------------------------------------------------------------------- /src/main/resources/application-dev.properties: -------------------------------------------------------------------------------- 1 | # ======================================================================= 2 | # Ai Server Properties 3 | # ======================================================================= 4 | server.port=19090 5 | # ------------------------------------------------------------------------ 6 | # Log Details 7 | # ------------------------------------------------------------------------ 8 | server.dev.mode=true 9 | logging.level.root=INFO 10 | spring.application.name=ai-service 11 | # ======================================================================= 12 | # H2 DB Properties 13 | # ======================================================================= 14 | db.server=mem 15 | db.port=5432 16 | db.name=ai_324 17 | db.schema=ms_schema 18 | db.vendor=H2 19 | # To Store the Data in File 20 | #spring.datasource.url=jdbc:h2:file:/data/demo 21 | spring.datasource.url=jdbc:h2:${db.server}:${db.name};DB_CLOSE_ON_EXIT=FALSE 22 | spring.datasource.driverClassName=org.h2.Driver 23 | spring.datasource.username=sa 24 | spring.datasource.password=ENC(lA6JCEpK7+wuHDpB1A41DOUfn6L74DQxaazXLTjyQHY5/X6CONfUEyDt6erWifrN) 25 | spring.jpa.database-platform=org.hibernate.dialect.H2Dialect 26 | # ======================================================================= 27 | # Enabling H2 Console 28 | # ======================================================================= 29 | spring.h2.console.enabled=true 30 | spring.h2.console.path=/h2-ui 31 | spring.h2.console.settings.trace=false 32 | spring.h2.console.settings.web-allow-others=false 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/main/resources/application-prod.properties: -------------------------------------------------------------------------------- 1 | # ======================================================================= 2 | # Ai Server Properties 3 | # ======================================================================= 4 | server.port=19090 5 | # ------------------------------------------------------------------------ 6 | # Log Details 7 | # ------------------------------------------------------------------------ 8 | server.dev.mode=true 9 | logging.level.root=INFO 10 | spring.application.name=ai-service 11 | # ======================================================================= 12 | # PostgreSQL DB Properties - 13 | # ======================================================================= 14 | db.server=localhost 15 | db.port=5433 16 | db.name=ai_324 17 | db.schema=ms_schema 18 | db.vendor=PostgreSQL 19 | spring.datasource.url=jdbc:postgresql://${db.server}:${db.port}/${db.name} 20 | spring.datasource.driverClassName=org.postgresql.ds.PGSimpleDataSource 21 | spring.datasource.username=postgres 22 | spring.datasource.password=2023.Sigma 23 | spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 24 | spring.datasource.hikari.connection-test-query=SELECT 1 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/main/resources/application-staging.properties: -------------------------------------------------------------------------------- 1 | # ======================================================================= 2 | # Ai Server Properties 3 | # ======================================================================= 4 | server.port=19090 5 | # ------------------------------------------------------------------------ 6 | # Log Details 7 | # ------------------------------------------------------------------------ 8 | server.dev.mode=true 9 | logging.level.root=INFO 10 | spring.application.name=ai-service 11 | # ======================================================================= 12 | # PostgreSQL DB Properties - 13 | # ======================================================================= 14 | db.server=localhost 15 | db.port=5433 16 | db.name=ai_324 17 | db.schema=ms_schema 18 | db.vendor=PostgreSQL 19 | spring.datasource.url=jdbc:postgresql://${db.server}:${db.port}/${db.name} 20 | spring.datasource.driverClassName=org.postgresql.ds.PGSimpleDataSource 21 | spring.datasource.username=postgres 22 | spring.datasource.password=2023.Sigma 23 | spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 24 | spring.datasource.hikari.connection-test-query=SELECT 1 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/main/resources/data-trans.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO country_m (id, countryId, countryCode, countryName, countryOfficialName) VALUES (1, 1, 'USA', 'America', 'United States of America'); 2 | INSERT INTO country_m (id, countryId, countryCode, countryName, countryOfficialName) VALUES (2, 250, 'FRA', 'France', 'The French Republic'); 3 | INSERT INTO country_m (id, countryId, countryCode, countryName, countryOfficialName) VALUES (3, 76, 'BRA', 'Brazil', 'The Federative Republic of Brazil'); 4 | INSERT INTO country_m (id, countryId, countryCode, countryName, countryOfficialName) VALUES (4, 380, 'ITA', 'Italy', 'Italy'); 5 | INSERT INTO country_m (id, countryId, countryCode, countryName, countryOfficialName) VALUES (5, 380, 'IND', 'India', 'Republic of India'); 6 | INSERT INTO country_m (id, countryId, countryCode, countryName, countryOfficialName) VALUES (6, 124, 'CAN', 'Canada', 'Canada'); -------------------------------------------------------------------------------- /src/main/resources/logback-spring-appenders-json-logstash.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | logstash-host:5000 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 5000 24 | 60000 25 | 26 | 27 | 28 | 5000 29 | 30 | 31 | 5000 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/main/resources/logback-spring-scope.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/main/resources/logback-spring.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/main/resources/static/data/docs/Patient_Diagnosis_Report_Akiera_Kiera.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/docs/Patient_Diagnosis_Report_Akiera_Kiera.docx -------------------------------------------------------------------------------- /src/main/resources/static/data/docs/Patient_Diagnosis_Report_Jane_Susan_Wood.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/docs/Patient_Diagnosis_Report_Jane_Susan_Wood.docx -------------------------------------------------------------------------------- /src/main/resources/static/data/docs/Patient_Report_Alice_Johnson.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/docs/Patient_Report_Alice_Johnson.docx -------------------------------------------------------------------------------- /src/main/resources/static/data/docs/Patient_Report_Emily_Davis.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/docs/Patient_Report_Emily_Davis.docx -------------------------------------------------------------------------------- /src/main/resources/static/data/docs/Patient_Report_James_Markov.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/docs/Patient_Report_James_Markov.docx -------------------------------------------------------------------------------- /src/main/resources/static/data/docs/Patient_Report_Jane_Smith.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/docs/Patient_Report_Jane_Smith.docx -------------------------------------------------------------------------------- /src/main/resources/static/data/docs/Patient_Report_Michael_Wilson.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/docs/Patient_Report_Michael_Wilson.docx -------------------------------------------------------------------------------- /src/main/resources/static/data/docs/Patient_Report_Olivia_Anderson.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/docs/Patient_Report_Olivia_Anderson.docx -------------------------------------------------------------------------------- /src/main/resources/static/data/docs/Patient_Report_Robert_Brown.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/docs/Patient_Report_Robert_Brown.docx -------------------------------------------------------------------------------- /src/main/resources/static/data/docs/Patient_Report_William_Martinez.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/docs/Patient_Report_William_Martinez.docx -------------------------------------------------------------------------------- /src/main/resources/static/data/health/Patient_Report_Alice_Johnson.txt: -------------------------------------------------------------------------------- 1 | Patient Diagnosis Report Patient Information Patient-Name: Alice Johnson Patient-ID: 300100205 Gender: Female Age: 29 Date of Birth: January 5, 1995 Chronic Conditions: PCOS Diagnosis 1 Date: 2019-06-14 Diagnosis: PCOS with irregular periods and acne Lab Reports: - Elevated testosterone levels - Polycystic ovaries on ultrasound Prescriptions (Medications): - Metformin 500mg twice daily - Birth control pills Diagnosis 2 Date: 2021-02-03 Diagnosis: Anxiety with symptoms of restlessness and worry Lab Reports: - Normal TSH levels - Normal CBC Prescriptions (Medications): - Sertraline 50mg daily - Cognitive behavioral therapy -------------------------------------------------------------------------------- /src/main/resources/static/data/health/Patient_Report_Emily_Davis.txt: -------------------------------------------------------------------------------- 1 | Patient Diagnosis Report Patient Information Patient-Name: Emily Davis Patient-ID: 300100207 Gender: Female Age: 42 Date of Birth: June 15, 1981 Chronic Conditions: Rheumatoid Arthritis Diagnosis 1 Date: 2018-09-28 Diagnosis: Rheumatoid arthritis with joint pain and stiffness Lab Reports: - Positive rheumatoid factor - Elevated ESR Prescriptions (Medications): - Methotrexate 15mg weekly - NSAIDs as needed Diagnosis 2 Date: 2023-01-15 Diagnosis: Osteoporosis with low bone density Lab Reports: - Low DEXA scan results - Normal calcium levels Prescriptions (Medications): - Calcium supplements - Vitamin D 2000 IU daily -------------------------------------------------------------------------------- /src/main/resources/static/data/health/Patient_Report_James_Markov.txt: -------------------------------------------------------------------------------- 1 | Patient Diagnosis Report Patient Information Patient-Name: James Markov Patient-ID: 300100203 Gender: Male Age: 50 Date of Birth: March 14, 1974 Chronic Conditions: Hypertension, Asthma Diagnosis 1 Date: 2021-03-22 Diagnosis: Hypertension with elevated blood pressure Lab Reports: - Blood pressure: 150/90 mmHg - Elevated cholesterol levels Prescriptions (Medications): - Lisinopril 10mg daily - Diet modification - Exercise Diagnosis 2 Date: 2022-11-05 Diagnosis: Asthma with wheezing and shortness of breath Lab Reports: - Normal spirometry - Elevated eosinophil count Prescriptions (Medications): - Albuterol inhaler as needed - Montelukast 10mg daily Diagnosis 3 Date: 2023-07-18 Diagnosis: Common cold with cough and nasal congestion Lab Reports: - Negative for influenza - Normal WBC count Prescriptions (Medications): - Rest - Hydration - Over-the-counter cold medication -------------------------------------------------------------------------------- /src/main/resources/static/data/health/Patient_Report_Jane_Smith.txt: -------------------------------------------------------------------------------- 1 | Patient Diagnosis Report Patient Information Patient-Name: Jane Smith Patient-ID: 300100204 Gender: Female Age: 37 Date of Birth: August 20, 1986 Chronic Conditions: Thyroid Disorder Diagnosis 1 Date: 2020-05-12 Diagnosis: Hypothyroidism with fatigue and weight gain Lab Reports: - Elevated TSH levels - Low T4 levels Prescriptions (Medications): - Levothyroxine 75mcg daily Diagnosis 2 Date: 2021-12-09 Diagnosis: Anemia with fatigue and pallor Lab Reports: - Low hemoglobin levels - Low hematocrit Prescriptions (Medications): - Iron supplements - Diet modification -------------------------------------------------------------------------------- /src/main/resources/static/data/health/Patient_Report_Michael_Wilson.txt: -------------------------------------------------------------------------------- 1 | Patient Diagnosis Report Patient Information Patient-Name: Michael Wilson Patient-ID: 300100208 Gender: Male Age: 56 Date of Birth: April 10, 1968 Chronic Conditions: Type 2 Diabetes Diagnosis 1 Date: 2019-07-23 Diagnosis: Type 2 Diabetes with elevated blood sugar Lab Reports: - Elevated HbA1c - High fasting glucose Prescriptions (Medications): - Metformin 1000mg twice daily - Diet modification - Exercise Diagnosis 2 Date: 2021-11-19 Diagnosis: Hypertension with elevated blood pressure Lab Reports: - Blood pressure: 145/85 mmHg - Normal kidney function Prescriptions (Medications): - Amlodipine 5mg daily - Diet modification - Exercise -------------------------------------------------------------------------------- /src/main/resources/static/data/health/Patient_Report_Olivia_Anderson.txt: -------------------------------------------------------------------------------- 1 | Patient Diagnosis Report Patient Information Patient-Name: Olivia Anderson Patient-ID: 300100210 Gender: Female Age: 34 Date of Birth: May 7, 1990 Chronic Conditions: Multiple Sclerosis Diagnosis 1 Date: 2017-04-25 Diagnosis: Multiple sclerosis with muscle weakness and fatigue Lab Reports: - MRI showing demyelination - Elevated CSF protein Prescriptions (Medications): - Interferon beta-1a - Physical therapy - Vitamin D supplements -------------------------------------------------------------------------------- /src/main/resources/static/data/health/Patient_Report_Robert_Brown.txt: -------------------------------------------------------------------------------- 1 | Patient Diagnosis Report Patient Information Patient-Name: Robert Brown Patient-ID: 300100206 Gender: Male Age: 65 Date of Birth: October 2, 1958 Chronic Conditions: Coronary Artery Disease Diagnosis 1 Date: 2020-11-11 Diagnosis: Coronary artery disease with chest pain Lab Reports: - Elevated troponin levels - Abnormal ECG Prescriptions (Medications): - Aspirin 81mg daily - Atorvastatin 20mg daily - Nitroglycerin as needed Diagnosis 2 Date: 2022-08-22 Diagnosis: Gout with joint pain and swelling Lab Reports: - Elevated uric acid levels - Normal kidney function Prescriptions (Medications): - Allopurinol 100mg daily - Colchicine 0.6mg as needed -------------------------------------------------------------------------------- /src/main/resources/static/data/health/Patient_Report_William_Martinez.txt: -------------------------------------------------------------------------------- 1 | Patient Diagnosis Report Patient Information Patient-Name: William Martinez Patient-ID: 300100209 Gender: Male Age: 47 Date of Birth: December 25, 1976 Chronic Conditions: Chronic Kidney Disease Diagnosis 1 Date: 2020-02-14 Diagnosis: Chronic kidney disease with reduced kidney function Lab Reports: - Elevated creatinine levels - Low GFR Prescriptions (Medications): - ACE inhibitors - Diet modification - Fluid restriction Diagnosis 2 Date: 2023-06-29 Diagnosis: Anemia with fatigue and pallor Lab Reports: - Low hemoglobin levels - Low hematocrit Prescriptions (Medications): - Iron supplements - Erythropoietin injections -------------------------------------------------------------------------------- /src/main/resources/static/data/ml/mnist/mnist-image-0.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/ml/mnist/mnist-image-0.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/data/ml/mnist/mnist-image-1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/ml/mnist/mnist-image-1.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/data/ml/mnist/mnist-image-2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/ml/mnist/mnist-image-2.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/data/ml/mnist/mnist-image-3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/ml/mnist/mnist-image-3.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/data/ml/mnist/mnist-image-4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/ml/mnist/mnist-image-4.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/data/ml/mnist/mnist-image-5.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/ml/mnist/mnist-image-5.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/data/ml/mnist/mnist-image-6.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/ml/mnist/mnist-image-6.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/data/ml/mnist/mnist-image-7.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/ml/mnist/mnist-image-7.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/data/ml/mnist/mnist-image-8.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/ml/mnist/mnist-image-8.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/data/ml/mnist/mnist-image-9.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/data/ml/mnist/mnist-image-9.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/files/error.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Service Error Page 6 | 7 | 8 |

Service Error Page

9 | Error Code: 404
10 | Error Desc: Resource NOT FOUND 11 | 12 | -------------------------------------------------------------------------------- /src/main/resources/static/files/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Service Standard Page 6 | 7 | 8 |

Service Standard Page - Files

9 | Error Code: 404
10 | Error Desc: Resource NOT FOUND 11 | 12 | -------------------------------------------------------------------------------- /src/main/resources/static/images/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Service Standard Page 6 | 7 | 8 |

Service Standard Page - Images

9 | Error Code: 404
10 | Error Desc: Resource NOT FOUND 11 | 12 | -------------------------------------------------------------------------------- /src/main/resources/static/images/user-icon-fe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/images/user-icon-fe.png -------------------------------------------------------------------------------- /src/main/resources/static/images/user-icon-ma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/images/user-icon-ma.png -------------------------------------------------------------------------------- /src/main/resources/static/images/user-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arafkarsh/ms-springboot-ai/1cd5c68dcb3e78ea9dc9cc5203ef1191ed16513e/src/main/resources/static/images/user-icon.png -------------------------------------------------------------------------------- /src/main/resources/static/videos/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Service Standard Page 6 | 7 | 8 |

Service Standard Page - Videos and other Resources

9 | Error Code: 404
10 | Error Desc: Resource NOT FOUND 11 | 12 | -------------------------------------------------------------------------------- /testTokens: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | curl -X 'GET' \ 3 | 'http://localhost:9090/ms-cache/api/v1/tokens/refresh' \ 4 | -H 'accept: application/json' \ 5 | -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJhdWQiOiJNUy1DYWNoZSIsImp0aSI6IjY1NTEwY2I0LTc3NDctNDFhOS1hN2MwLWRiZWI4MDdhOTkyMCIsInJvbCI6IlVzZXIiLCJkaWQiOiJEZXZpY2UgSUQiLCJzdWIiOiJqYW5lLmRvZSIsImlzcyI6Im1ldGFtYWdpYyIsImlhdCI6MTY2MDkxMjM2MSwiZXhwIjoxNjYwOTE0MTYxfQ.2nk4p7IBbJ07tLA_-WE_GLmooGYiBExNsCNoVD47A9rtUM82LOPnA-OzOzLqirTT5Wmjanle9DHQJa_Zh7gRRA' \ 6 | -H 'Refresh-Token: Bearer eyJhbGciOiJIUzUxMiJ9.eyJhdWQiOiJNUy1DYWNoZSIsImp0aSI6ImVjOWVkNTYzLTZjYTYtNDM5MS1hMWI3LTRjZDg3Y2EwY2NhNSIsInJvbCI6IlVzZXIiLCJkaWQiOiJEZXZpY2UgSUQiLCJzdWIiOiJqYW5lLmRvZSIsImlzcyI6Im1ldGFtYWdpYyIsImlhdCI6MTY2MDkxMzIyNiwiZXhwIjoxNjYwOTE1MDI2fQ.GA60_pKqsggQIt2FZzkt2NIIMs34re2Fkh6wkJ91Tk9m5tzSvnvwd_U0qTxMLOsVmFO1B3sJUqA1hy7040OkxQ' 7 | --------------------------------------------------------------------------------