{"id":36601875,"url":"https://github.com/ufukhalis/phoenix-data","last_synced_at":"2026-01-12T08:39:09.899Z","repository":{"id":57735089,"uuid":"166389158","full_name":"ufukhalis/phoenix-data","owner":"ufukhalis","description":"Apache Phoenix Client for Spring Boot","archived":false,"fork":false,"pushed_at":"2019-03-18T20:57:11.000Z","size":96,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-01T09:54:56.898Z","etag":null,"topics":["apache-phoenix","hbase-client","phoenix-client","spring-boot"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ufukhalis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-18T10:39:57.000Z","updated_at":"2022-07-21T14:33:41.000Z","dependencies_parsed_at":"2022-08-24T11:20:37.818Z","dependency_job_id":null,"html_url":"https://github.com/ufukhalis/phoenix-data","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ufukhalis/phoenix-data","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ufukhalis%2Fphoenix-data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ufukhalis%2Fphoenix-data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ufukhalis%2Fphoenix-data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ufukhalis%2Fphoenix-data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ufukhalis","download_url":"https://codeload.github.com/ufukhalis/phoenix-data/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ufukhalis%2Fphoenix-data/sbom","scorecard":{"id":907258,"data":{"date":"2025-08-11","repo":{"name":"github.com/ufukhalis/phoenix-data","commit":"2e58d668d1d2e6a30cbf5dce51019141d1541626"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.9,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: .mvn/wrapper/maven-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 4 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T17:47:13.737Z","repository_id":57735089,"created_at":"2025-08-24T17:47:13.737Z","updated_at":"2025-08-24T17:47:13.737Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache-phoenix","hbase-client","phoenix-client","spring-boot"],"created_at":"2026-01-12T08:39:09.835Z","updated_at":"2026-01-12T08:39:09.884Z","avatar_url":"https://github.com/ufukhalis.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/ufukhalis/phoenix-data.svg?branch=master)](https://travis-ci.com/ufukhalis/phoenix-data) [![Coverage Status](https://coveralls.io/repos/github/ufukhalis/phoenix-data/badge.svg)](https://coveralls.io/github/ufukhalis/phoenix-data)\n\nPhoenix Data \n===================\n\nThis project goal is to make more easily configuration and using Apache Phoenix with Spring Boot based\napplications. \n\nThere are not good enough example of usage the Apache Phoenix, especially with Spring Boot. \nSo ``Phoenix Data`` was born via this idea. For now, with this library you can easily connect\nto Apache Phoenix and can execute the raw SQL queries. It has support for Async calls too.\n\nThis project uses the vavr library which is really good implement of functional Java.\n\n\nQuick Start\n---\n\nFirst add dependency to your project.\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.github.ufukhalis.phoenix\u003c/groupId\u003e\n        \u003cartifactId\u003ephoenix-data\u003c/artifactId\u003e\n        \u003cversion\u003e0.0.5\u003c/version\u003e\n    \u003c/dependency\u003e\n\nThen create a class add `@EnablePhoenixData` annotation.\n\n    @EnablePhoenixData\n    @Configuration\n    public class PhoenixConfig {\n    \n    }\n\nAfter then you need to add below properties to your application.properties file.\n\n    phoenix.data.jdbcUrl = jdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF\n    phoenix.data.maxConnection = 10 # optional\n    phoenix.data.minConnection = 5  # optional\n    phoenix.data.basePackage = {your.root.package} # com.test\n    phoenix.data.tableStrategy = CREATE # Other options are NONE and DROP_CREATE\n    \nAfter these configurations, let's create your repository class which is extends `PhoenixCrudRepository`.\n\n    @Repository\n    public class YourRepository extends PhoenixCrudRepository\u003cTestEntity, Long\u003e {\n    \n    }\n\nThen we can define our basic `Entity` class.\n\n    @Entity(\"tableName\")\n    public class TestEntity {\n        \n        @Column(value = \"id\", isPrimaryKey = true)\n        private Long id;\n        \n        @Column(\"name\")\n        private String name;\n        \n    }    \n    \nDepends table creation strategy, when your application start to running\nrelated strategy will run.\n\n\nThen you can autowire your repository.\n\n    @Autowired\n    YourRepository yourRepository; \n\nSave your entity\n\n    TestEntity entity = ...\n    yourRepository.save(entity);\n\nFind your entity by using its primary key\n\n    Optional\u003cTestEntity\u003e entity = yourRepository.find(1L);\n\nDelete your entity by using its primary key\n\n    yourRepository.delete(1L);\n    \nCreate query by using `PhoenixQuery` class.\n\n    final PhoenixQuery phoenixQuery = new PhoenixQuery.Builder(YourEntity.class)\n                    .select()\n                    .build();\n\n    YourEntity entity = yourRepository.find(phoenixQuery);\n\nAlso you can execute raw queries via `yourRepository`\n\n    String rawSql = \"drop table if exists javatest\";\n    int rowAffected = yourRepository.executeUpdate(rawSql);\n    //...\n\nOr async call\n\n    String rawSql = \"drop table if exists javatest\";\n    Future\u003cInteger\u003e rowAffected = yourRepository.executeUpdateAsync(rawSql);\n    //...\n\nRun your query and get results\n\n    String rawSql = \"select * from javatest\";\n    ResultSet rs = yourRepository.executeQuery(rawSql);\n    while(rs.next()) {\n        //..\n    }\n\nOr async call\n\n    String rawSql = \"select * from javatest\";\n    Future\u003cResultSet\u003e resultSetFuture = yourRepository.executeQueryAsync(rawSql);\n    resultSetFuture.mapTry(resultSet -\u003e {\n        //..\n    });\n\nNote\n---\n\nThis project is still under development. But you can use in your projects.\n\nFor more information about Apache Phoenix, check the site https://phoenix.apache.org/\n\nFor more information about vavr.io, check the site http://vavr-io.github.io\n\nLicense\n---\n\nAll code in this repository is licensed under the Apache License, Version 2.0. See [LICENCE](./LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fufukhalis%2Fphoenix-data","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fufukhalis%2Fphoenix-data","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fufukhalis%2Fphoenix-data/lists"}