Scan timing: clone 2.78s · analysis 6.94s · 2.8 MB · GitHub preflight 434ms
https://github.com/latchbio/latch
· scanned 2026-06-05 19:37 UTC (4 days, 16 hours ago)
· 10 languages
338 raw signals (156 security + 182 graph) 39th percentile · Python · medium (20-100K LoC) System graph score 70 (lower by 22)
Last scanned 4 days, 16 hours ago · v2 · 179 actionable findings from 2 signal sources. 66 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
85.0 | 0.15 | 12.75 |
security_score |
17.6 | 0.25 | 4.40 |
testing_score |
12.0 | 0.20 | 2.40 |
documentation_score |
86.0 | 0.15 | 12.90 |
practices_score |
74.0 | 0.15 | 11.10 |
code_quality |
52.9 | 0.10 | 5.29 |
| Overall | 1.00 | 48.8 |
All 1484 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
test_ls |
software | healthy | tests/test_ls.py:6 |
test_account_jwt |
software | healthy | tests/fixtures.py:10 |
project_name |
software | healthy | tests/fixtures.py:22 |
build_endpoints |
software | healthy | src/latch_sdk_config/latch.py:88 |
__init__ |
software | healthy | src/latch_sdk_config/user.py:15 |
root |
software | healthy | src/latch_sdk_config/user.py:21 |
token_path |
software | healthy | src/latch_sdk_config/user.py:27 |
workspace_path |
software | healthy | src/latch_sdk_config/user.py:36 |
token |
software | healthy | src/latch_sdk_config/user.py:45 |
workspace_id |
software | healthy | src/latch_sdk_config/user.py:57 |
workspace_name |
software | healthy | src/latch_sdk_config/user.py:78 |
update_token |
software | healthy | src/latch_sdk_config/user.py:89 |
update_workspace |
software | healthy | src/latch_sdk_config/user.py:94 |
current |
software | healthy | src/latch/account.py:79 |
load |
software | healthy | src/latch/account.py:94 |
list_registry_projects |
software | healthy | src/latch/account.py:159 |
update |
software | healthy | src/latch/account.py:178 |
__repr__ |
software | healthy | src/latch/account.py:203 |
__str__ |
software | healthy | src/latch/account.py:206 |
upsert_registry_project |
software | dead | src/latch/account.py:239 |
_add_registry_projects_upsert_selection |
software | healthy | src/latch/account.py:249 |
delete_registry_project |
software | dead | src/latch/account.py:280 |
_add_registry_projects_delete_selection |
software | healthy | src/latch/account.py:288 |
commit |
software | healthy | src/latch/account.py:318 |
_add_mutations_selection |
software | healthy | src/latch/account.py:332 |
clear |
software | healthy | src/latch/account.py:368 |
account_id_from_token |
software | healthy | src/latch/utils.py:12 |
retrieve_or_login |
software | healthy | src/latch/utils.py:42 |
get_workspaces |
software | healthy | src/latch/utils.py:65 |
current_workspace |
software | healthy | src/latch/utils.py:160 |
get_task_identifier |
software | healthy | src/latch/executions.py:54 |
rename_current_execution |
software | dead | src/latch/executions.py:82 |
add_execution_results |
software | dead | src/latch/executions.py:110 |
report_nextflow_used_storage |
software | dead | src/latch/executions.py:143 |
url |
software | healthy | src/latch/executions.py:174 |
get_execution_metadata |
software | dead | src/latch/executions.py:178 |
dict |
software | healthy | src/latch/types/metadata.py:870 |
__post_init__ |
software | healthy | src/latch/types/metadata.py:875 |
__init__ |
software | healthy | src/latch/types/metadata.py:286 |
__str__ |
software | healthy | src/latch/types/metadata.py:713 |
_samplesheet_repr |
software | healthy | src/latch/types/metadata.py:558 |
default_samplesheet_constructor |
software | dead | src/latch/types/metadata.py:569 |
validate |
software | healthy | src/latch/types/metadata.py:799 |
_parameter_str |
software | healthy | src/latch/types/metadata.py:714 |
file_glob |
software | dead | src/latch/types/glob.py:8 |
__init__ |
software | healthy | src/latch/types/directory.py:282 |
downloader |
software | dead | src/latch/types/directory.py:133 |
_idempotent_set_path |
software | healthy | src/latch/types/directory.py:150 |
iterdir |
software | healthy | src/latch/types/directory.py:161 |
size_recursive |
software | healthy | src/latch/types/directory.py:206 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
_DataAPI |
software | healthy | src/latch_sdk_config/latch.py:22 |
_WorkflowAPI |
software | healthy | src/latch_sdk_config/latch.py:32 |
_ExecutionAPI |
software | healthy | src/latch_sdk_config/latch.py:44 |
_UserAPI |
software | healthy | src/latch_sdk_config/latch.py:52 |
_CentromereAPI |
software | healthy | src/latch_sdk_config/latch.py:57 |
_API |
software | healthy | src/latch_sdk_config/latch.py:64 |
_ConsoleRoutes |
software | healthy | src/latch_sdk_config/latch.py:73 |
_LatchConfig |
software | healthy | src/latch_sdk_config/latch.py:78 |
_UserConfig |
software | healthy | src/latch_sdk_config/user.py:12 |
AccountNotFoundError |
software | healthy | src/latch/account.py:22 |
_CatalogExperiment |
software | healthy | src/latch/account.py:25 |
_CatalogExperimentConnection |
software | healthy | src/latch/account.py:30 |
_CatalogProjectNode |
software | healthy | src/latch/account.py:34 |
_CatalogProjectConnection |
software | healthy | src/latch/account.py:41 |
_Account |
software | healthy | src/latch/account.py:45 |
_Cache |
software | healthy | src/latch/account.py:50 |
Account |
software | healthy | src/latch/account.py:55 |
_AccountRegistryProjectsUpsertData |
software | healthy | src/latch/account.py:211 |
_AccountRegistryProjectsDeleteData |
software | healthy | src/latch/account.py:216 |
AccountUpdate |
software | healthy | src/latch/account.py:226 |
WSInfo |
software | healthy | src/latch/utils.py:56 |
NoWorkspaceSelectedError |
software | healthy | src/latch/utils.py:62 |
NotFoundError |
software | healthy | src/latch/utils.py:204 |
TaskIdentifier |
software | healthy | src/latch/executions.py:46 |
ExecutionMetadata |
software | healthy | src/latch/executions.py:166 |
LatchRule |
software | healthy | src/latch/types/metadata.py:39 |
LatchAppearanceEnum |
software | healthy | src/latch/types/metadata.py:58 |
MultiselectOption |
software | healthy | src/latch/types/metadata.py:64 |
Multiselect |
software | healthy | src/latch/types/metadata.py:70 |
LatchAuthor |
software | healthy | src/latch/types/metadata.py:82 |
FlowBase |
software | healthy | src/latch/types/metadata.py:94 |
Section |
software | healthy | src/latch/types/metadata.py:116 |
Text |
software | healthy | src/latch/types/metadata.py:211 |
Title |
software | healthy | src/latch/types/metadata.py:219 |
Params |
software | healthy | src/latch/types/metadata.py:227 |
Spoiler |
software | healthy | src/latch/types/metadata.py:241 |
ForkBranch |
software | healthy | src/latch/types/metadata.py:255 |
Fork |
software | healthy | src/latch/types/metadata.py:269 |
LatchParameter |
software | healthy | src/latch/types/metadata.py:293 |
_IsDataclass |
software | healthy | src/latch/types/metadata.py:415 |
SnakemakeParameter |
software | healthy | src/latch/types/metadata.py:437 |
SnakemakeFileParameter |
software | healthy | src/latch/types/metadata.py:446 |
SnakemakeFileMetadata |
software | healthy | src/latch/types/metadata.py:470 |
NextflowParameter |
software | healthy | src/latch/types/metadata.py:486 |
NextflowRuntimeResources |
software | healthy | src/latch/types/metadata.py:587 |
LatchMetadata |
software | healthy | src/latch/types/metadata.py:610 |
DockerMetadata |
software | healthy | src/latch/types/metadata.py:728 |
EnvironmentConfig |
software | healthy | src/latch/types/metadata.py:742 |
SnakemakeMetadata |
software | healthy | src/latch/types/metadata.py:763 |
NextflowMetadata |
software | healthy | src/latch/types/metadata.py:841 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
pyproject.toml |
software | healthy | pyproject.toml |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
__init__.py |
software | healthy | tests/__init__.py |
test_ls.py |
software | healthy | tests/test_ls.py |
fixtures.py |
software | healthy | tests/fixtures.py |
__init__.py |
software | healthy | tests/cp/__init__.py |
Makefile |
software | healthy | docs/Makefile |
index.md |
software | healthy | docs/source/index.md |
conf.py |
software | warning | docs/source/conf.py |
subcommands.md |
software | healthy | docs/source/subcommands.md |
feature_request.md |
software | healthy | .github/ISSUE_TEMPLATE/feature_request.md |
bug_report.md |
software | healthy | .github/ISSUE_TEMPLATE/bug_report.md |
test.yaml |
software | healthy | .github/workflows/test.yaml |
__init__.py |
software | healthy | src/latch_sdk_config/__init__.py |
latch.py |
software | healthy | src/latch_sdk_config/latch.py |
user.py |
software | healthy | src/latch_sdk_config/user.py |
account.py |
software | healthy | src/latch/account.py |
__init__.py |
software | healthy | src/latch/__init__.py |
utils.py |
software | healthy | src/latch/utils.py |
executions.py |
software | healthy | src/latch/executions.py |
metadata.py |
software | healthy | src/latch/types/metadata.py |
__init__.py |
software | healthy | src/latch/types/__init__.py |
glob.py |
software | healthy | src/latch/types/glob.py |
directory.py |
software | healthy | src/latch/types/directory.py |
samplesheet_item.py |
software | healthy | src/latch/types/samplesheet_item.py |
plots.py |
software | healthy | src/latch/types/plots.py |
file.py |
software | healthy | src/latch/types/file.py |
utils.py |
software | healthy | src/latch/types/utils.py |
json.py |
software | warning | src/latch/types/json.py |
__init__.py |
software | healthy | src/latch/functions/__init__.py |
operators.py |
software | healthy | src/latch/functions/operators.py |
messages.py |
software | healthy | src/latch/functions/messages.py |
secrets.py |
software | healthy | src/latch/functions/secrets.py |
utils.py |
software | healthy | src/latch/idl/utils.py |
workflow.py |
software | healthy | src/latch/idl/admin/workflow.py |
launch_plan.py |
software | healthy | src/latch/idl/admin/launch_plan.py |
schedule.py |
software | healthy | src/latch/idl/admin/schedule.py |
common.py |
software | healthy | src/latch/idl/admin/common.py |
workflow.py |
software | healthy | src/latch/idl/core/workflow.py |
types.py |
software | healthy | src/latch/idl/core/types.py |
interface.py |
software | healthy | src/latch/idl/core/interface.py |
literals.py |
software | healthy | src/latch/idl/core/literals.py |
execution.py |
software | healthy | src/latch/idl/core/execution.py |
identifier.py |
software | healthy | src/latch/idl/core/identifier.py |
tasks.py |
software | healthy | src/latch/idl/core/tasks.py |
security.py |
software | healthy | src/latch/idl/core/security.py |
condition.py |
software | healthy | src/latch/idl/core/condition.py |
dynamic.py |
software | healthy | src/latch/resources/dynamic.py |
__init__.py |
software | healthy | src/latch/resources/__init__.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
cp |
software | healthy | tests/cp |
docs |
software | healthy | docs |
source |
software | healthy | docs/source |
.github |
software | healthy | .github |
ISSUE_TEMPLATE |
software | healthy | .github/ISSUE_TEMPLATE |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
latch_sdk_config |
software | healthy | src/latch_sdk_config |
latch |
software | healthy | src/latch |
types |
software | healthy | src/latch/types |
functions |
software | healthy | src/latch/functions |
idl |
software | healthy | src/latch/idl |
admin |
software | healthy | src/latch/idl/admin |
core |
software | healthy | src/latch/idl/core |
resources |
software | healthy | src/latch/resources |
ldata |
software | healthy | src/latch/ldata |
_transfer |
software | healthy | src/latch/ldata/_transfer |
verified |
software | healthy | src/latch/verified |
registry |
software | healthy | src/latch/registry |
upstream_types |
software | healthy | src/latch/registry/upstream_types |
latch_cli |
software | healthy | src/latch_cli |
docker_utils |
software | healthy | src/latch_cli/docker_utils |
snakemake |
software | healthy | src/latch_cli/snakemake |
config |
software | healthy | src/latch_cli/snakemake/config |
auth |
software | healthy | src/latch_cli/auth |
exceptions |
software | healthy | src/latch_cli/exceptions |
tui |
software | healthy | src/latch_cli/tui |
utils |
software | healthy | src/latch_cli/utils |
centromere |
software | healthy | src/latch_cli/centromere |
services |
software | healthy | src/latch_cli/services |
cp |
software | healthy | src/latch_cli/services/cp |
launch |
software | healthy | src/latch_cli/services/launch |
docker |
software | healthy | src/latch_cli/services/docker |
test_data |
software | healthy | src/latch_cli/services/test_data |
k8s |
software | healthy | src/latch_cli/services/k8s |
register |
software | healthy | src/latch_cli/services/register |
init |
software | healthy | src/latch_cli/services/init |
example_conda |
software | healthy | src/latch_cli/services/init/example_conda |
example_snakemake |
software | healthy | src/latch_cli/services/init/example_snakemake |
scripts |
software | healthy | src/latch_cli/services/init/example_snakemake/scripts |
example_docker |
software | healthy | src/latch_cli/services/init/example_docker |
template |
software | healthy | src/latch_cli/services/init/template |
example_r |
software | healthy | src/latch_cli/services/init/example_r |
assemble_and_sort |
software | healthy | src/latch_cli/services/init/assemble_and_sort |
example_nfcore |
software | healthy | src/latch_cli/services/init/example_nfcore |
nextflow |
software | healthy | src/latch_cli/nextflow |
latch_sdk_gql |
software | healthy | src/latch_sdk_gql |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/latch_cli/auth/oauth2.py |
security | healthy | src/latch_cli/auth/oauth2.py |
auth::src/latch_cli/constants.py |
security | healthy | src/latch_cli/constants.py |
auth::src/latch_cli/auth/pkce.py |
security | healthy | src/latch_cli/auth/pkce.py |
auth::src/latch/idl/core/security.py |
security | healthy | src/latch/idl/core/security.py |
auth::src/latch_sdk_config/latch.py |
security | healthy | src/latch_sdk_config/latch.py |
auth::src/latch_cli/utils/__init__.py |
security | healthy | src/latch_cli/utils/__init__.py |
auth::src/latch/utils.py |
security | healthy | src/latch/utils.py |
auth::src/latch_cli/services/login.py |
security | healthy | src/latch_cli/services/login.py |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | src/latch_cli/constants.py |
54.212.151.84 |
network | healthy | src/latch_cli/services/pods.py |
44.237.115.144 |
network | healthy | src/latch_cli/services/pods.py |
52.0.156.72 |
network | healthy | src/latch_cli/services/pods.py |
3.72.154.205 |
network | healthy | src/latch_cli/services/pods.py |
54.154.243.51 |
network | healthy | src/latch_cli/services/pods.py |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::gcp |
hardware | healthy | src/latch/types/utils.py |
vps::azure |
hardware | healthy | src/latch/types/utils.py |
vps::aws |
hardware | healthy | src/latch/idl/admin/schedule.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::src/latch_cli/services/init/example_snakemake/Docker… |
hardware | healthy | src/latch_cli/services/init/example_snakemake/Dockerfile |
image::src/latch_cli/services/init/example_nfcore/Dockerfile |
hardware | healthy | src/latch_cli/services/init/example_nfcore/Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-309w76in |
software | healthy | /tmp/repobility-clone-309w76in |
| Label | Layer | Status | Path |
|---|---|---|---|
redis |
data | healthy | src/latch/idl/core/tasks.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | src/latch/idl/core/tasks.py |
| Label | Layer | Status | Path |
|---|---|---|---|
.env in repo |
security | healthy | src/latch_cli/services/init/assemble_and_sort/.env |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::test |
cicd | healthy | .github/workflows/test.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
macos |
cicd | healthy | .github/workflows/test.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
TEST_TOKEN |
cicd | healthy | — |
This page is publicly accessible at:
https://repobility.com/scan/b86e022c-e18c-4345-8a54-afd7dc1b481d/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/b86e022c-e18c-4345-8a54-afd7dc1b481d/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.