{ "schema_version": 1, "contract": { "scope": "Every public SQL function is classified. Topology-producing functions require caller-visibility composition before observable topology.", "static_limit": "This inventory checks explicit body-scoped route edges, not inferred general Rust reachability. Rust QueryExecutionContext types and PostgreSQL semantic tests remain the enforcement boundary.", "unknown_visibility": "hidden", "policy_oracle": "PostgreSQL source-table queries in the effective execution context" }, "public_sql_partition": { "topology_visibility_required": [ "aggregate", "component", "component_stats", "components", "connected_components", "connection", "cypher", "expand", "find_related", "get_neighbors", "get_node", "gql", "isolated_nodes", "largest_component", "neighborhood", "path", "path_count_estimate", "shortest_path", "traverse", "traverse_search", "weighted_shortest_path" ], "postgres_direct_visibility": [ "find", "search", "search_nodes" ], "not_topology_read": [ "active_generation_count", "add_edge", "add_edge_to_graph", "add_filter_column", "add_filter_column_to_graph", "add_sync_policy", "add_table", "add_table_to_graph", "all", "alter_edge", "alter_graph", "alter_job", "alter_sync_policy", "apply_sync", "at_least", "at_most", "auto_discover", "auto_discover_tables", "between", "build", "build_async_graph", "build_graph", "build_resource_status", "build_status", "build_status_for_graph", "contains_text", "create_graph", "create_row_predicate_subgraph", "current_graph", "cypher_compatibility", "cypher_explain", "drop_graph", "drop_sync_policy", "edge_types", "enable_sync", "eq", "equals", "estimate", "format_path", "gql_explain", "grant_graph", "graph_map", "graph_privileges", "graph_quota_usage", "graph_quotas", "graph_runtime_status", "greater_than", "gt", "gte", "in", "ingest_projection", "is_not_null", "is_null", "job_runs", "job_stats", "jobs", "less_than", "list_edges", "list_graphs", "load_graph", "loaded_graphs", "lt", "lte", "maintenance", "maintenance_graph", "maintenance_status", "maintenance_status_for_graph", "memory_profile", "neq", "node_ref", "node_ref_string", "not_equals", "not_in", "on_node", "pgq", "prefix_text", "preview_discover", "preview_discover_tables", "projection_compact", "projection_gc", "projection_repair", "projection_status", "registered_edges", "registered_edges_for_graph", "registered_tables", "registered_tables_for_graph", "remove_edge", "remove_edge_from_graph", "remove_job", "remove_table", "remove_table_from_graph", "rename_edge", "reset", "resource_status", "revoke_graph", "run_due_jobs", "run_due_jobs_async", "run_job", "run_scheduled_maintenance", "run_sync_policy", "select_graph", "set_current_graph", "set_graph_quota", "set_graph_residency", "status", "sync_health", "sync_policy_status", "transfer_graph_ownership", "unload_graph", "vacuum", "vacuum_graph" ] }, "entrypoints": [ {"sql_name":"traverse","rust_function":"traverse","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/traversal.rs","function":"traverse","calls":["prepare_bfs_visibility(","execute_lazy_bfs_rows("]}],"semantic_evidence":{"path":"graph/tests/heavy/run_sqlstate_acl_boundary.sh","symbol":"graph.traverse('public.graph_boundary_identity_nodes'::regclass"}}, {"sql_name":"traverse","rust_function":"traverse_many","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/traversal.rs","function":"traverse_many","calls":["prepare_bfs_visibility(","execute_lazy_bfs_candidates("]}],"semantic_evidence":{"path":"graph/src/pg_tests/traversal_api.rs","symbol":"ARRAY['u1'::text, 'u2'::text]"}}, {"sql_name":"get_node","rust_function":"get_node","strategy":"targeted_source_probe","route":[{"path":"graph/src/sql_facade/traversal.rs","function":"get_node","calls":["direct_get_node_rows("]},{"path":"graph/src/sql_facade/traversal.rs","function":"direct_get_node_rows","calls":["prepare_direct_identity_visibility(","resolve_lazy_visibility_batch("]}],"semantic_evidence":{"path":"graph/src/pg_tests/gql.rs","symbol":"direct_identity_lazy_matches_eager_for_visible_hidden_and_absent_rows"}}, {"sql_name":"get_neighbors","rust_function":"get_neighbors","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/traversal.rs","function":"get_neighbors","calls":["direct_get_neighbors_rows("]},{"path":"graph/src/sql_facade/traversal.rs","function":"direct_get_neighbors_rows","calls":["prepare_bfs_visibility(","execute_lazy_bfs_rows("]}],"semantic_evidence":{"path":"graph/tests/heavy/run_sqlstate_acl_boundary.sh","symbol":"graph.get_neighbors("}}, {"sql_name":"shortest_path","rust_function":"shortest_path","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/traversal.rs","function":"shortest_path","calls":["shortest_path_rows_governed("]},{"path":"graph/src/sql_facade/traversal.rs","function":"shortest_path_rows_governed","calls":["prepare_bfs_visibility(","execute_lazy_shortest_path_rows(","prepare_bfs_eager_fallback(","shortest_path_rows_in_context("]}],"semantic_evidence":{"path":"graph/src/pg_tests/traversal_paths.rs","symbol":"unweighted_paths_lazy_match_eager_single_bidirectional_ties_and_order"}}, {"sql_name":"shortest_path","rust_function":"shortest_path_typed","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/traversal.rs","function":"shortest_path_typed","calls":["shortest_path_rows_governed("]},{"path":"graph/src/sql_facade/traversal.rs","function":"shortest_path_rows_governed","calls":["prepare_bfs_visibility(","execute_lazy_shortest_path_rows(","prepare_bfs_eager_fallback(","shortest_path_rows_in_context("]}],"semantic_evidence":{"path":"graph/src/pg_tests/traversal_paths.rs","symbol":"unweighted_paths_lazy_match_eager_single_bidirectional_ties_and_order"}}, {"sql_name":"weighted_shortest_path","rust_function":"weighted_shortest_path","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/traversal.rs","function":"weighted_shortest_path","calls":["weighted_shortest_path_rows_governed("]},{"path":"graph/src/sql_facade/traversal.rs","function":"weighted_shortest_path_rows_governed","calls":["prepare_bfs_visibility(","execute_lazy_weighted_shortest_path(","prepare_bfs_eager_fallback(","weighted_shortest_path_governed_in_context("]}],"semantic_evidence":{"path":"graph/src/pg_tests/traversal_paths.rs","symbol":"weighted_paths_lazy_match_eager_rls_ties_filters_and_metadata"}}, {"sql_name":"weighted_shortest_path","rust_function":"weighted_shortest_path_typed","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/traversal.rs","function":"weighted_shortest_path_typed","calls":["weighted_shortest_path_rows_governed("]},{"path":"graph/src/sql_facade/traversal.rs","function":"weighted_shortest_path_rows_governed","calls":["prepare_bfs_visibility(","execute_lazy_weighted_shortest_path(","prepare_bfs_eager_fallback(","weighted_shortest_path_governed_in_context("]}],"semantic_evidence":{"path":"graph/src/pg_tests/traversal_paths.rs","symbol":"weighted_paths_lazy_match_eager_rls_ties_filters_and_metadata"}}, {"sql_name":"aggregate","rust_function":"aggregate","strategy":"whole_graph_eager","route":[{"path":"graph/src/sql_facade/traversal.rs","function":"aggregate","calls":["aggregate_impl("]},{"path":"graph/src/sql_aggregation.rs","function":"aggregate_impl","calls":["prepare_eager_visibility("]}],"semantic_evidence":{"path":"graph/tests/heavy/run_sqlstate_acl_boundary.sh","symbol":"graph.aggregate("}}, {"sql_name":"path_count_estimate","rust_function":"path_count_estimate","strategy":"whole_graph_eager","route":[{"path":"graph/src/sql_facade/traversal.rs","function":"path_count_estimate","calls":["path_count_estimate_impl("]},{"path":"graph/src/sql_aggregation.rs","function":"path_count_estimate_impl","calls":["prepare_eager_visibility("]}],"semantic_evidence":{"path":"graph/tests/heavy/run_sqlstate_acl_boundary.sh","symbol":"graph.path_count_estimate("}}, {"sql_name":"connected_components","rust_function":"connected_components","strategy":"whole_graph_eager","route":[{"path":"graph/src/sql_facade/components.rs","function":"connected_components","calls":["prepare_eager_visibility(","connected_components_governed_in_context("]}],"semantic_evidence":{"path":"graph/tests/heavy/run_sqlstate_acl_boundary.sh","symbol":"graph.connected_components("}}, {"sql_name":"component_stats","rust_function":"component_stats","strategy":"whole_graph_eager","route":[{"path":"graph/src/sql_facade/components.rs","function":"component_stats","calls":["prepare_eager_visibility(","connected_components_governed_in_context("]}],"semantic_evidence":{"path":"graph/tests/heavy/run_sqlstate_acl_boundary.sh","symbol":"graph.component_stats("}}, {"sql_name":"components","rust_function":"components","strategy":"whole_graph_eager","route":[{"path":"graph/src/sql_facade/components.rs","function":"components","calls":["prepare_eager_visibility(","connected_components_governed_in_context("]}],"semantic_evidence":{"path":"graph/tests/heavy/run_sqlstate_acl_boundary.sh","symbol":"graph.components("}}, {"sql_name":"largest_component","rust_function":"largest_component","strategy":"whole_graph_eager","route":[{"path":"graph/src/sql_facade/components.rs","function":"largest_component","calls":["largest_component_rows("]},{"path":"graph/src/sql_facade/runtime.rs","function":"largest_component_rows","calls":["prepare_eager_visibility(","connected_components_governed_in_context("]}],"semantic_evidence":{"path":"graph/tests/heavy/run_sqlstate_acl_boundary.sh","symbol":"graph.largest_component("}}, {"sql_name":"component","rust_function":"component","strategy":"whole_graph_eager","route":[{"path":"graph/src/sql_facade/components.rs","function":"component","calls":["component_rows("]},{"path":"graph/src/sql_facade/runtime.rs","function":"component_rows","calls":["prepare_eager_visibility(","connected_components_governed_in_context("]}],"semantic_evidence":{"path":"graph/tests/heavy/run_sqlstate_acl_boundary.sh","symbol":"graph.component("}}, {"sql_name":"isolated_nodes","rust_function":"isolated_nodes","strategy":"whole_graph_eager","route":[{"path":"graph/src/sql_facade/components.rs","function":"isolated_nodes","calls":["prepare_eager_visibility(","connected_components_governed_in_context("]}],"semantic_evidence":{"path":"graph/tests/heavy/run_sqlstate_acl_boundary.sh","symbol":"graph.isolated_nodes("}}, {"sql_name":"expand","rust_function":"expand","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/workflow.rs","function":"expand","calls":["StatementBfsVisibility::prepare(","prepare(","execute_rows("]},{"path":"graph/src/sql_traversal.rs","function":"prepare","calls":["prepare_bfs_visibility("]}],"semantic_evidence":{"path":"graph/src/pg_tests/workflow_search_api.rs","symbol":"workflow_expand_lazy_matches_eager_rows_hydration_and_truncation"}}, {"sql_name":"find_related","rust_function":"find_related","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/workflow.rs","function":"find_related","calls":["StatementBfsVisibility::prepare(","prepare(","traverse_search_rows_with_statement_bfs_visibility("]},{"path":"graph/src/sql_traversal.rs","function":"prepare","calls":["prepare_bfs_visibility("]}],"semantic_evidence":{"path":"graph/src/pg_tests/workflow_search_api.rs","symbol":"workflow_find_related_lazy_reuses_one_resolver_across_roots_and_counts"}}, {"sql_name":"path","rust_function":"path","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/workflow.rs","function":"path","calls":["shortest_path_rows_governed("]},{"path":"graph/src/sql_facade/traversal.rs","function":"shortest_path_rows_governed","calls":["prepare_bfs_visibility(","execute_lazy_shortest_path_rows(","prepare_bfs_eager_fallback(","shortest_path_rows_in_context("]}],"semantic_evidence":{"path":"graph/src/pg_tests/traversal_paths.rs","symbol":"unweighted_paths_lazy_match_eager_single_bidirectional_ties_and_order"}}, {"sql_name":"connection","rust_function":"connection","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/workflow.rs","function":"connection","calls":["prepare_eager_visibility(","shortest_path_rows_in_context("]}],"semantic_evidence":{"path":"graph/src/pg_tests/workflow_relationship_api.rs","symbol":"FROM graph.connection("}}, {"sql_name":"neighborhood","rust_function":"neighborhood","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/workflow.rs","function":"neighborhood","calls":["StatementBfsVisibility::prepare(","prepare(","traverse_search_rows_with_statement_bfs_visibility("]},{"path":"graph/src/sql_traversal.rs","function":"prepare","calls":["prepare_bfs_visibility("]}],"semantic_evidence":{"path":"graph/src/pg_tests/workflow_relationship_api.rs","symbol":"workflow_neighborhood_lazy_matches_eager_groups_samples_and_caps"}}, {"sql_name":"traverse_search","rust_function":"traverse_search","strategy":"targeted_scope","route":[{"path":"graph/src/sql_facade/search.rs","function":"traverse_search","calls":["traverse_search_rows_governed("]},{"path":"graph/src/sql_facade/search.rs","function":"traverse_search_rows_governed","calls":["prepare(","traverse_search_rows_with_statement_bfs_visibility("]},{"path":"graph/src/sql_traversal.rs","function":"prepare","calls":["prepare_bfs_visibility("]}],"semantic_evidence":{"path":"graph/tests/heavy/run_sqlstate_acl_boundary.sh","symbol":"graph.traverse_search("}}, {"sql_name":"gql","rust_function":"gql","strategy":"conditional_statement","route":[{"path":"graph/src/sql_facade/gql.rs","function":"gql","calls":["execute_statement_governed("]},{"path":"graph/src/sql_facade/gql.rs","function":"execute_statement_governed","calls":["execute_identity_one_hop_lazy(","prepare_gql_eager_visibility("]},{"path":"graph/src/sql_facade/gql.rs","function":"prepare_gql_eager_visibility","calls":["prepare_eager_visibility("]}],"semantic_evidence":{"path":"graph/src/pg_tests/gql.rs","symbol":"gql_identity_bounded_expansion_lazy_matches_eager_rls_optional_multipattern_order_and_caps"}}, {"sql_name":"cypher","rust_function":"cypher","strategy":"conditional_statement","route":[{"path":"graph/src/sql_facade/cypher.rs","function":"cypher","calls":["execute_statement("]},{"path":"graph/src/sql_facade/gql.rs","function":"execute_statement","calls":["execute_statement_governed("]},{"path":"graph/src/sql_facade/gql.rs","function":"execute_statement_governed","calls":["execute_identity_one_hop_lazy(","prepare_gql_eager_visibility("]},{"path":"graph/src/sql_facade/gql.rs","function":"prepare_gql_eager_visibility","calls":["prepare_eager_visibility("]}],"semantic_evidence":{"path":"graph/src/pg_tests/cypher.rs","symbol":"cypher_identity_bounded_expansion_selects_lazy_and_matches_gql_under_rls"}} ] }