{"id":37030465,"url":"https://github.com/satya64/powerbi-sdk-java","last_synced_at":"2026-01-14T03:42:50.766Z","repository":{"id":57734707,"uuid":"251054701","full_name":"satya64/powerbi-sdk-java","owner":"satya64","description":"Java client library for MS Power BI REST APIs to provide access to Dashboards, Report, Groups, Datasets, generate embed tokens, etc.","archived":false,"fork":false,"pushed_at":"2020-05-17T17:28:38.000Z","size":170,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-10-15T19:45:26.531Z","etag":null,"topics":["java","microsoft","powerbi","rest"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/satya64.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-29T14:41:16.000Z","updated_at":"2021-09-25T07:56:59.000Z","dependencies_parsed_at":"2022-09-26T22:11:01.867Z","dependency_job_id":null,"html_url":"https://github.com/satya64/powerbi-sdk-java","commit_stats":null,"previous_names":[],"tags_count":2,"template":null,"template_full_name":null,"purl":"pkg:github/satya64/powerbi-sdk-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satya64%2Fpowerbi-sdk-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satya64%2Fpowerbi-sdk-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satya64%2Fpowerbi-sdk-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satya64%2Fpowerbi-sdk-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satya64","download_url":"https://codeload.github.com/satya64/powerbi-sdk-java/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satya64%2Fpowerbi-sdk-java/sbom","scorecard":{"id":801644,"data":{"date":"2025-08-11","repo":{"name":"github.com/satya64/powerbi-sdk-java","commit":"e457536e9d5e57dc6b09abe739f8d968501214fc"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"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/23 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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/gradle.yml:1","Info: no jobLevel write permissions found"],"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":10,"reason":"no dangerous workflow patterns detected","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":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-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":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/satya64/powerbi-sdk-java/gradle.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/satya64/powerbi-sdk-java/gradle.yml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned"],"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":"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"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: 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":"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":"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":"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":"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 8 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"}}]},"last_synced_at":"2025-08-23T10:39:03.918Z","repository_id":57734707,"created_at":"2025-08-23T10:39:03.918Z","updated_at":"2025-08-23T10:39:03.918Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","microsoft","powerbi","rest"],"created_at":"2026-01-14T03:42:50.070Z","updated_at":"2026-01-14T03:42:50.755Z","avatar_url":"https://github.com/satya64.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PowerBI Java SDK\n\n## License\n[![MIT License](https://img.shields.io/apm/l/atomic-design-ui.svg?)](https://github.com/satya64/powerbi-sdk-java/blob/master/LICENSE)\n![Java CI with Gradle](https://github.com/satya64/powerbi-sdk-java/workflows/Java%20CI%20with%20Gradle/badge.svg)\n\n## Introduction\n\nThis is simple Java client(synchronous) over Microsoft PowerBI REST API using Retrofit HTTP client. It is wrapped around the common functionality available in the PowerBI REST API.\n\n## Background\n\nThe official PowerBI page doesn't have an API for Java developers to access - ![PowerBI Dev Center](https://powerbi.microsoft.com/en-us/developers/). The alternative way is to use REST clients in java to access the functionality. So, that is the motivation to create this API which will enable developers to quickly and easily access the PowerBI in Java applications.\n\n## Installation\n\n### Maven\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.github.satya64\u003c/groupId\u003e\n        \u003cartifactId\u003epowerbi-sdk-java\u003c/artifactId\u003e\n        \u003cversion\u003e1.0.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\n### Gradle\n\n    compile group: 'io.github.satya64', name: 'powerbi-sdk-java', version: '1.0.0'\n\n### Usage\n\nPowerBI clients depend on authentication tokens from Azure AD for allowing access to the powerbi resources for all activities. As such it it required to know the basics of authentication flow from below links.\n\nhttps://docs.microsoft.com/en-us/azure/active-directory/azuread-dev/v1-authentication-scenarios\n\nBelow will help with acquiring tokens based on the type of your application.\n\nhttps://github.com/AzureAD/azure-activedirectory-library-for-java/wiki/ADAL4J-Basics\n\nhttps://github.com/AzureAD/azure-activedirectory-library-for-java/wiki/Acquire-tokens\n\nOnce access token acquired, powerbi client instance can be initilized.\n\n    PowerBiClient client = PowerBiClient.getInstance(accessToken);\n\nThis will instantiate the client and that's mostly enough for us get started with operations inside the API. Below are examples how you can access different operations related to Report, Dashboard, EmbedToken, Group, etc.\n\n 1. List your reports in your organization.\n \n        client.getReportOperations().getReports(); // Returns a list of reports of user from \"My Workspace\"\n    \n 2. List reports in a group that you have access.\n    \n        client.getReportOperations().getReportsInGroup(groupId); // Returns a list of reports associated with group/workspace\n  \n \u003c TODO \u003e - more examples\n   \nAccess tokens will have an expiry time, after which access requests will be denied. So new access toke need to be acquired and submitted to client instance.\n\n    client.updateAccessToken(newAccessToken);\n    \nThis will internally update the Retrofit client configured in the API and requests can be continued using the client.\n\n## Upcoming improvements\n \n We have more changes to improve the API.\n \n - Add adal4j authentication to incorporate token generation using the client itself.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatya64%2Fpowerbi-sdk-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatya64%2Fpowerbi-sdk-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatya64%2Fpowerbi-sdk-java/lists"}