{"id":13528284,"url":"https://github.com/looker-open-source/sdk-codegen","last_synced_at":"2026-04-02T13:31:02.095Z","repository":{"id":37546710,"uuid":"180189919","full_name":"looker-open-source/sdk-codegen","owner":"looker-open-source","description":"One SDK to rule them all, and in the codegen bind them","archived":false,"fork":false,"pushed_at":"2026-03-11T00:56:51.000Z","size":37020,"stargazers_count":264,"open_issues_count":136,"forks_count":198,"subscribers_count":53,"default_branch":"main","last_synced_at":"2026-03-11T04:38:47.999Z","etag":null,"topics":["api","code-generator","csharp","kotlin","looker-api","looker-sdk","openapi-generator","openapi-specification","python","sdk","swift","swift5","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/looker-open-source.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-04-08T16:30:46.000Z","updated_at":"2026-03-06T17:01:17.000Z","dependencies_parsed_at":"2024-02-01T04:46:01.352Z","dependency_job_id":"4b4cc760-c74b-417a-91f0-2c394d68af10","html_url":"https://github.com/looker-open-source/sdk-codegen","commit_stats":{"total_commits":1672,"total_committers":68,"mean_commits":24.58823529411765,"dds":0.5867224880382775,"last_synced_commit":"5223398b5e1cf960bc8cc6130906e133b08e990b"},"previous_names":["looker-open-source/sdk_codegen"],"tags_count":1430,"template":false,"template_full_name":null,"purl":"pkg:github/looker-open-source/sdk-codegen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/looker-open-source%2Fsdk-codegen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/looker-open-source%2Fsdk-codegen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/looker-open-source%2Fsdk-codegen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/looker-open-source%2Fsdk-codegen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/looker-open-source","download_url":"https://codeload.github.com/looker-open-source/sdk-codegen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/looker-open-source%2Fsdk-codegen/sbom","scorecard":{"id":598446,"data":{"date":"2025-08-11","repo":{"name":"github.com/looker-open-source/sdk-codegen","commit":"6e454098089a27053f4b26d376fdff8716de6929"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.2,"checks":[{"name":"Code-Review","score":8,"reason":"Found 22/27 approved changesets -- score normalized to 8","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":"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":"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":"Maintained","score":7,"reason":"7 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'checks' permission set to 'write': .github/workflows/apix-ci.yml:105","Warn: jobLevel 'checks' permission set to 'write': .github/workflows/codegen-ci.yml:141","Warn: jobLevel 'checks' permission set to 'write': .github/workflows/go-ci.yml:198","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/kotlin-ci.yml:50","Info: jobLevel 'contents' permission set to 'read': .github/workflows/kotlin-ci.yml:31","Warn: jobLevel 'checks' permission set to 'write': .github/workflows/python-ci.yml:253","Warn: jobLevel 'checks' permission set to 'write': .github/workflows/tssdk-ci.yml:193","Warn: topLevel 'checks' permission set to 'write': .github/workflows/apix-ci.yml:30","Warn: topLevel 'checks' permission set to 'write': .github/workflows/codegen-ci.yml:26","Warn: no topLevel permission defined: .github/workflows/fix-npm.yml:1","Warn: topLevel 'checks' permission set to 'write': .github/workflows/go-ci.yml:18","Warn: topLevel 'checks' permission set to 'write': .github/workflows/hackathon-ci.yml:24","Warn: topLevel 'checks' permission set to 'write': .github/workflows/kotlin-ci.yml:23","Warn: no topLevel permission defined: .github/workflows/lerna-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/p3-issue-label.yml:1","Warn: topLevel 'checks' permission set to 'write': .github/workflows/python-ci.yml:27","Warn: no topLevel permission defined: .github/workflows/python-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/release-metrics.yml:1","Warn: no topLevel permission defined: .github/workflows/release-please.yml:1","Warn: topLevel 'checks' permission set to 'write': .github/workflows/required-checks-hack-ci.yml:31","Warn: topLevel 'checks' permission set to 'write': .github/workflows/resources-ci.yml:25","Warn: no topLevel permission defined: .github/workflows/triage-issue-label.yml:1","Warn: topLevel 'checks' permission set to 'write': .github/workflows/tssdk-ci.yml:37"],"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":"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":"Binary-Artifacts","score":6,"reason":"binaries present in source code","details":["Warn: binary detected: examples/java/example_gradle/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: examples/java/example_maven/.mvn/wrapper/maven-wrapper.jar:1","Warn: binary detected: examples/python/__pycache__/sdk_exceptions.cpython-37.pyc:1","Warn: binary detected: kotlin/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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/looker-open-source/.github/SECURITY.md:1","Info: Found linked content: github.com/looker-open-source/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/looker-open-source/.github/SECURITY.md:1","Info: Found text in security policy: github.com/looker-open-source/.github/SECURITY.md:1"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/python-publish.yml:18"],"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":"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/apix-ci.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/apix-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/apix-ci.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/apix-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/apix-ci.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/apix-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/apix-ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/apix-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/apix-ci.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/apix-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/apix-ci.yml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/apix-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/codegen-ci.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/codegen-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codegen-ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/codegen-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/codegen-ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/codegen-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/codegen-ci.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/codegen-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/codegen-ci.yml:65: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/codegen-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codegen-ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/codegen-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codegen-ci.yml:129: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/codegen-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codegen-ci.yml:145: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/codegen-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/codegen-ci.yml:150: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/codegen-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/go-ci.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-ci.yml:116: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/go-ci.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/go-ci.yml:127: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/go-ci.yml:134: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-ci.yml:166: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-ci.yml:186: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-ci.yml:202: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/go-ci.yml:207: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/go-ci.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-ci.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/go-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/hackathon-ci.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/hackathon-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/hackathon-ci.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/hackathon-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/hackathon-ci.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/hackathon-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/kotlin-ci.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/kotlin-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/kotlin-ci.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/kotlin-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/kotlin-ci.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/kotlin-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/kotlin-ci.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/kotlin-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lerna-publish.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/lerna-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lerna-publish.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/lerna-publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lerna-publish.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/lerna-publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lerna-publish.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/lerna-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lerna-publish.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/lerna-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/p3-issue-label.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/p3-issue-label.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:87: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:104: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:154: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:157: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:162: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:170: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:177: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:222: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:236: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:237: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:257: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:288: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-publish.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/python-publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-metrics.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/release-metrics.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-metrics.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/release-metrics.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-please.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/release-please.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/required-checks-hack-ci.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/required-checks-hack-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/required-checks-hack-ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/required-checks-hack-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/resources-ci.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/resources-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/resources-ci.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/resources-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/resources-ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/resources-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/triage-issue-label.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/triage-issue-label.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:112: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:118: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:137: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:140: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:148: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:163: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:181: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:197: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tssdk-ci.yml:202: update your workflow using https://app.stepsecurity.io/secureworkflow/looker-open-source/sdk-codegen/tssdk-ci.yml/main?enable=pin","Warn: goCommand not pinned by hash: .github/workflows/go-ci.yml:58","Warn: goCommand not pinned by hash: .github/workflows/go-ci.yml:173","Warn: pipCommand not pinned by hash: .github/workflows/python-ci.yml:242","Warn: pipCommand not pinned by hash: .github/workflows/python-ci.yml:51","Warn: pipCommand not pinned by hash: .github/workflows/python-ci.yml:52","Warn: pipCommand not pinned by hash: .github/workflows/python-ci.yml:96","Warn: pipCommand not pinned by hash: .github/workflows/python-ci.yml:97","Warn: pipCommand not pinned by hash: .github/workflows/python-ci.yml:210","Warn: pipCommand not pinned by hash: .github/workflows/python-ci.yml:211","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:36","Info:   0 out of  48 GitHub-owned GitHubAction dependencies pinned","Info:   2 out of  36 third-party GitHubAction dependencies pinned","Info:   0 out of   2 goCommand dependencies pinned","Info:   0 out of   8 pipCommand 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":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (29) 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":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: OSSFuzz integration found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":0,"reason":"32 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-cj7v-w2c7-cp7c","Warn: Project is vulnerable to: GHSA-h5c3-5r3r-rr8q","Warn: Project is vulnerable to: GHSA-rmvr-2pp2-xj38","Warn: Project is vulnerable to: GHSA-xx4v-prfh-6cgc","Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-36jr-mh4h-2g58","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h"],"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-20T23:46:24.338Z","repository_id":37546710,"created_at":"2025-08-20T23:46:24.338Z","updated_at":"2025-08-20T23:46:24.338Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30398832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T18:46:22.935Z","status":"ssl_error","status_checked_at":"2026-03-11T18:46:17.045Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","code-generator","csharp","kotlin","looker-api","looker-sdk","openapi-generator","openapi-specification","python","sdk","swift","swift5","typescript"],"created_at":"2024-08-01T06:02:23.678Z","updated_at":"2026-03-11T21:25:52.185Z","avatar_url":"https://github.com/looker-open-source.png","language":"TypeScript","readme":"# SDK Codegen\n\nThis Looker Open Source repository is released under the MIT license. By using\nthis repository, you agree to the terms of that license, and acknowledge that\nyou are doing so at your own risk.\n\nWhile Looker has developed and tested this code internally, we cannot guarantee\nthat the open-source tools used by the scripts in this repository have not been\nmodified with malicious code.\n\n**Important** - If you are using the Looker TypeScript SDK, please see this\n[note on npmjs.com](https://www.npmjs.com/package/@looker/sdk#typescript-sdk-packages) explaining changes to dependencies and packaging.\n\n### Support\n\nThe TypeScript and Python SDKs are officially supported by Looker/Google.\nIssues can be logged here in the GitHub Issues page, but can also be logged\nwith Looker Support. The other language SDKs are community supported. Issues\nfor these should be logged only in the GitHub Issues page. Details of Looker\nAPI and SDK support can be found at [https://cloud.google.com/looker/docs/api-sdk-support-policy](https://cloud.google.com/looker/docs/api-sdk-support-policy).\n\n## Overview\n\nThis repository contains:\n\n- The [SDK code generator](packages/sdk-codegen) that generates the source code for Looker SDKs\n- Source code for the Looker SDKs produced by the code generator\n- Looker SDK source code [examples](examples)\n- the [API Explorer extension](packages/extension-api-explorer) that can be installed into a Looker instance\n- the stand-alone [API Explorer](packages/api-explorer)\n- the [RunIt](packages/run-it) REST client tester (embedded within API Explorer, typically)\n- [code generator scripts](packages/sdk-codegen-scripts) that require Node (file i/o) to read and write SDK files\n\n## The parts of the Looker SDK\n\nWe hope to help people who want to use Looker as a platform get up and running\nquickly, largely by providing pre-built client SDKs in the most popular\nlanguages, and implementing consistency across all languages and platforms.\n\nThe Looker SDK has several parts:\n\n- The **Looker API**, described by an [OpenAPI\n  specification](https://github.com/OAI/OpenAPI-Specification) (e.g., the\n  Swagger 2.x representation found at\n  `https://\u003cyour-looker-domain\u003e:19999/api/4.0/swagger.json`). The 4.0 API is\n  our current \u0026 stable API. As of October 2023, [3.x has been removed](https://cloud.google.com/looker/docs/api-3x-deprecation).\n\n- The **Looker API Explorer**, an interactive reference, accessible either\n  stand-alone at\n  [developers.looker.com/api/explorer/](https://developers.looker.com/api/explorer/),\n  or installable into your Looker instance as an extension from the Looker\n  Marketplace.\n\n- **Language SDKs**, \"smarter\" client language classes and methods to improve\n  the experience of calling the Looker API in various popular coding languages.\n  Some SDKs are\n  [Looker-supported](https://cloud.google.com/looker/docs/api-sdk-support-policy)\n  whereas others are community-supported.\n\n## SDK Versions\n\nThe 4.0 version of the API is the current and stable version of the API. The 3.x API has now been\n[removed](https://cloud.google.com/looker/docs/api-3x-deprecation).\n\nFor self-hosted instances on older versions of Looker, please use the corresponding release of `sdk-codegen`` to use API 3.x.\n\nNote: API credentials have not been changed between API 3.x and API 4 and may continue to be referred to as \"API3\" credentials in the Looker UI, docs, or elsewhere.\n\n## Automatic URL encoding for input values\n\nTL;DR: don't URL encode your inputs because the SDKs will automatically handle\nit.\n\nAll SDKs URL encode (also known as [percent\nencoding](https://en.wikipedia.org/wiki/Percent-encoding)) input values for\npassing to the API endpoints automatically. Furthermore, except for Swift,\nwhich has problematic URL decoding support, the other SDKs will avoid\ndouble-encoding inputs that may already be encoded.\n\n## Using existing, pre-generated SDKs\n\nWhen a specific language SDK has been developed, Looker makes that SDK\navailable using the standard package manager for that platform. Currently, the\n[Python SDK](python) and the [TypeScript SDK](packages/sdk) can be installed\nfrom their respective package managers by following the instructions in their\nreadmes.\n\nFor the other SDKs in this repository, you can copy and paste the source code\ninto a module for your own project. Every SDK will eventually have a deployed\npackage version.\n\nIf you want to use the generation options for an SDK, read on.\n\n## Generating an API language binding\n\nThere are three steps for generating an SDK with this project:\n\n- [configure a `looker.ini` file](#configuring-lookerini-or-env) so the Looker\n  API specification can be retrieved from your Looker server.\n\n  - **Note**: previous versions of the `looker.ini` file had an `api_version`\n    entry. This is no longer required. The code generator project will read an\n    `api_versions` value if that is found, but the SDKs ignore this value. If\n    `api_versions` is not found in the `ini` file, it defaults to \"4.0\" for\n    the generator to produce the definitions for the supported API versions.\n\n- install the code generator project dependencies by running:\n\n```sh\nyarn install\nyarn build\n```\n\nThe resources required to run the code generator are in [package.json](package.json).\n\n**Note**: If `yarn` is not installed, use [these instructions to install](https://yarnpkg.com/lang/en/docs/install/) it.\n\n- run the SDK generator with `yarn gen [language]`\n\n- **Note**: [Generating Client SDKs for the Looker API](https://www.googlecloudcommunity.com/gc/Developing-Applications/Generating-Client-SDKs-for-the-Looker-API/td-p/574683) describes the legacy, manual steps for generating an API language binding. This project replaces these manual steps, and uses an improved code generator.\n\n## Configuring `looker.ini` or `.env`\n\nThe code generator and other scripts and tests read a configuration file called\n`looker.ini` to fetch the API specification from a server. This configuration\nfile needs to be in the root folder of the code generator.\n\nTo create `looker.ini`, copy [`looker-sample.ini`](looker-sample.ini) to\n`looker.ini` and fill in the required values. The values for `client_id` and\n`client_secret` can be retrieved by navigating to\n`https://\u003cyour_looker_endpoint\u003e/admin/users`, editing your user, editing API\nkeys, and clicking the \"reveal\" button to view your `client_id` and\n`client_secret`. If there are currently no API credentials, they can be\ngenerated by clicking “New API Key.”\n\nFor your own source code repositories, be sure to configure your version\ncontrol system to ignore the SDK configuration `.ini` file so it doesn't\naccidentally get published somewhere unauthorized people can see it.\n\nUnlike some other OpenAPI code generators, the Looker SDK code generator\n**never** writes access information into SDK source code. All SDKs provided by\nLooker are designed to receive the credentials required to call API methods via\na `readConfig()` method that returns a key/value collection, where `client_id`\nand `client_secret` are retrieved, and used only for the time it takes to\ncomplete a login for authentication token retrieval, then they are immediately\ndiscarded from memory.\n\n**Note**: If a `.env` file is found, this will override values from\n`looker.ini`. To use a `.env` file for configuration instead, copy\n[`env-sample`](env-sample) to `.env` and provide the correct values for the\nenvironment variables.\n\nInvoke the SDK code generator with the command:\n\n```sh\nyarn gen\n```\n\nTo always use the latest Looker API specification for SDK generation, use:\n\n```sh\nyarn wipe \u0026\u0026 yarn gen\n```\n\nThe code generator will:\n\n- read the Looker API configuration(s) from the `looker.ini` file.\n\n  - **Note**: Normally there should only be one (1) entry in `looker.ini`. This\n    first ini section is what is used for the SDKs by default, and also by the\n    code generator.\n\n- download (if the API specification file is not already present) the Looker\n  API specification file(s) from the configured Looker server(s)\n\n- convert (if the converted file is not already present) the downloaded Swagger\n  2 specification file(s) to OpenAPI 3.x\n\n- validate the OpenAPI 3.x file(s)\n\n- by default, call the code generator for each active language\n\n  - To generate one specific language SDK, use `yarn gen {language}`. The\n    supported languages have a factory declared in the `Generators` array in\n    [`codeGenerators.ts`](packages/sdk-codegen/src/codeGenerators.ts)\n\nWhen the generator completes successfully, the output will be similar to:\n\n```plain-text\npython\n  looker\n    rtl\n      (run-time library hand-written files here)\n    sdk\n      methods.py (automatically generated)\n      models.py (automatically generated)\n```\n\n**Note:** If you're unable to download the API specification file because\nyou're using an instance of Looker that is self-signed and errors are thrown,\nyou can explicitly turn off SSL verification by putting `verify_ssl=false` in\nthe `looker.ini` file configuration section.\n\n### Using the Legacy generator\n\nTo generate a language currently not supported by Looker's SDK code generator\nwith the OpenAPI generator:\n\n- configure the desired language in [`codeGenerators.ts`](packages/sdk-codegen/src/codeGenerators.ts).\n\n- use `yarn legacy` to call the OpenAPI generator. This will use the OpenAPI\n  generator to output files to the `./api/*` path\n\n### Additional scripts\n\nUse\n\n```sh\nyarn run\n```\n\nto see the list of all scripts that can be run by the code generator.\n\nAfter generation, the generated code might not conform with the code standards.\nChanges cannot be committed until they pass the lint tests.\nThis can be checked with the following:\n\n```sh\nyarn lint\n```\n\nFor a faster run, only the modified files can be checked with any of these\ncommands:\n\n```sh\nyarn lint-changed\nyarn lint -q\nyarn lint --quick\n```\n\nFixes can automagically be applied with one of the following:\n\n```sh\nyarn lint-changed-fix\nyarn lint -q -f\nyarn lint --quick --fix\n```\n\n## SDK Examples\n\nThe [examples directory](/examples) contains code snippets and projects written\nusing the Looker language SDKs. You may find useful code in that repository.\nand are also welcome to contribute additional examples.\n\n## API Troubleshooting\n\nSee the official documentation for [API Troubleshooting](https://cloud.google.com/looker/docs/api-troubleshooting) suggestions.\n\n## Notes\n\nIn addition to swagger being deprecated, this [visual guide](https://blog.readme.io/an-example-filled-guide-to-swagger-3-2/) shows why OpenAPI 3.x is preferred to Swagger 2.x.\n\n## Securing your SDK credentials\n\nLooker improves on the security of the generated code for SDKs by **never**\nstoring your server location or API credentials in the source code generated by\nthe Looker code generator. The SDKs also provide some customizable support for\nproviding API configuration values like server location and credentials to the\nSDK. In every Looker SDK, there is an overrideable method called `readConfig()`\nthat can be customized to retrieve and return SDK configuration values from\nyour preferred secure storage location.\n\nEach Looker SDK has existing `readConfig()` examples that read from `.ini`\nfiles or environment variables. These are intended to support a quick start\nwhen developing with a Looker SDK. If a production environment prohibits secure\nuse of `.ini` files or environment variables, another method of retrieving API\nconfiguration values is required. The API configuration retrieval function\n`readConfig()` can be overridden to support alternate storage scenarios.\n\nTypically, `client_id` and `client_secret` are the only key values that will\nneed to be dynamically retrieved from the `readConfig()` override method\nbecause the other configuration values are saved in memory by the initialized\nSDK client. In the near future, there will be additional authentication flows\n(such as OAuth) supported by Looker SDKs. The dynamic result that is returned\nby `readConfig()` can also be useful in those additional scenarios.\n\nA short [TypeScript SDK example](https://github.com/looker-open-source/sdk-examples/blob/6f7b42891923a7430e0bb8341c7b5c567a2e1269/typescript/customConfigReader.ts#L15:L28)\nthat customizes `readConfig()` is available in the SDK Examples repository.\n\nThere is also a Kotlin SDK unit test in this repository with a short example:\n\n```kotlin\nclass MockSettings(contents: String) : ApiSettings(contents) {\n    override fun readConfig(): Map\u003cString, String\u003e {\n        return mapOf(\n                \"base_url\" to baseUrl,\n                \"verify_ssl\" to verifySSL.toString(),\n                \"timeout\" to timeout.toString(),\n                \"headers\" to headers.toString(),\n                \"client_id\" to mockId,\n                \"client_secret\" to mockSecret\n        )\n    }\n}\n```\n\nPlease consult with the security professionals in your organization to\ndetermine the best way to secure your credentials for your own Looker SDK\nusage.\n\n### Warnings for using `.ini` files to configure the SDK\n\nTo streamline getting started with the Looker SDKs, support for reading SDK\ncredentials from an `.ini` file is included as a simple method for providing\naccess information (server url and API credentials) to the SDK. If the source\ncode to your Looker SDK application is shared in a version control system, the\n`.ini` file should be ignored so it never gets inadvertently published.\n\nIf the SDK application using an `.ini` file is available publicly, download or\nviewing of this `.ini` file should also be prohibited by the server hosting the\napplication.\n\n### Warnings for using Environment variables to configure the SDK\n\nIf the host environment for a Looker SDK supports environment variables, the\nSDK can also read environment variables to retrieve the server url and API\ncredentials. Environment variables could also be visible to intrusive malware\nthat may penetrate your application, so this option for providing credentials\nshould also be used with caution.\n\n## Environment variable configuration\n\nEnvironment variables can be used for any SDK runtime that supports reading\nenvironment variables. Environment variables can be used in the:\n\n- **Node** version of the TypeScript/JavaScript Looker SDK\n- Python SDK\n- Swift SDK\n- Kotlin SDK\n- Go SDK\n\nThe following table describes the environment variables. By default, the SDK\n\"namespace\" is \"LookerSDK\" which is converted to UPPERCASE when used for naming\nenvironment variables.\n\n| Variable name           | Description                                                                                                                                                          |\n| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| LOOKERSDK_BASE_URL      | A URL like `https://my.looker.com:19999`. No default value.                                                                                                          |\n| LOOKERSDK_VERIFY_SSL    | `true`, `t`, `yes`, `y`, or `1` (case insensitive) to enable SSL verification. Any other value is treated as `false`. Defaults to `true` if not set.                 |\n| LOOKERSDK_TIMEOUT       | Request timeout in seconds. Defaults to `120` for most platforms.                                                                                                    |\n| LOOKERSDK_CLIENT_ID     | API credentials `client_id`. This and `client_secret` must be provided in some fashion to the Node SDK, or no calls to the API will be authorized. No default value. |\n| LOOKERSDK_CLIENT_SECRET | API credentials `client_secret`. No default value.                                                                                                                   |\n\n### Configuration variable precedence\n\nConfiguration variables should be processed as follows:\n\n- if the default configuration `.ini` file exists, apply the values\n- if an environment variable exists, apply the value\n- if a configuration value is explicitly in code, apply that value\n- if a command-line switch is supported, apply that value\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flooker-open-source%2Fsdk-codegen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flooker-open-source%2Fsdk-codegen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flooker-open-source%2Fsdk-codegen/lists"}