mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-29 10:26:21 +02:00
Three threads, all reinforcing the contract's system-level vs.
workspace-association distinction.
WS Mux service routing
- tg-show-flows (and any workspace-level service over the WS) was
failing with "unknown service" because the post-refactor Mux
unconditionally looked up flow-service:<kind>. Now branches on
the envelope's flow field: with flow → flow-service:<kind>;
without flow → <kind>:<op> from the inner body; with bare op
lookup for service=iam. Resource and parameters come from the
matched op's own extractors — same path the HTTP endpoints take.
Optional workspace on system-level user/key ops
- list-users returns the deployment-wide list when no workspace is
supplied, filters when one is. get-user, update-user,
disable-user, enable-user, delete-user, reset-password,
create-api-key, list-api-keys, revoke-api-key all treat workspace
as an optional integrity check rather than a required argument.
- create-user keeps workspace required — there it's the new user's
home-workspace binding, a parameter rather than an address.
- API keys reclassified as SYSTEM-level resources. By the same
reasoning that makes users system-level, an API key is a
credential record on a deployment-wide registry; the workspace it
authenticates to is a property, not a containment.
Self-service surface
- whoami: returns the caller's own user record. AUTHENTICATED-only;
no users:read capability required. Foundation for UI affordances
that depend on the caller's permissions.
- bootstrap-status: POST /api/v1/auth/bootstrap-status, PUBLIC,
side-effect-free. Returns {bootstrap_available: bool} so a
first-run UI can decide whether to render setup without consuming
the bootstrap op.
- Gateway now injects actor=identity.handle on every authenticated
forward to iam-svc (IamEndpoint and WS Mux iam path), overwriting
any caller-supplied value. Underpins whoami, audit logging, and
future regime-side decisions that need actor identity.
- tg-whoami and tg-update-user CLIs.
Spec polish
- iam-contract.md: actor-injection rule documented; whoami /
bootstrap-status added to operations list; permission-scope
framing tightened (workspace scope is a property of the grant,
not the user or role).
- iam.md: self-service section; gateway flow gains the actor-
injection step; role section reframed so iam-svc constraints
don't leak into contract-level prose.
- iam-protocol.md: ops table updated for whoami, bootstrap-status,
optional-workspace pattern; bootstrap_available added to the
IamResponse listing.
126 lines
No EOL
6.2 KiB
TOML
126 lines
No EOL
6.2 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=61.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "trustgraph-cli"
|
|
dynamic = ["version"]
|
|
authors = [{name = "trustgraph.ai", email = "security@trustgraph.ai"}]
|
|
description = "TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline."
|
|
readme = "README.md"
|
|
requires-python = ">=3.8"
|
|
dependencies = [
|
|
"trustgraph-base>=2.4,<2.5",
|
|
"requests",
|
|
"pulsar-client",
|
|
"aiohttp",
|
|
"rdflib",
|
|
"tabulate",
|
|
"msgpack",
|
|
"websockets",
|
|
]
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
"Operating System :: OS Independent",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/trustgraph-ai/trustgraph"
|
|
|
|
[project.scripts]
|
|
tg-add-library-document = "trustgraph.cli.add_library_document:main"
|
|
tg-delete-flow-blueprint = "trustgraph.cli.delete_flow_blueprint:main"
|
|
tg-delete-mcp-tool = "trustgraph.cli.delete_mcp_tool:main"
|
|
tg-delete-kg-core = "trustgraph.cli.delete_kg_core:main"
|
|
tg-delete-tool = "trustgraph.cli.delete_tool:main"
|
|
tg-dump-msgpack = "trustgraph.cli.dump_msgpack:main"
|
|
tg-dump-queues = "trustgraph.cli.dump_queues:main"
|
|
tg-monitor-prompts = "trustgraph.cli.monitor_prompts:main"
|
|
tg-get-flow-blueprint = "trustgraph.cli.get_flow_blueprint:main"
|
|
tg-get-kg-core = "trustgraph.cli.get_kg_core:main"
|
|
tg-get-document-content = "trustgraph.cli.get_document_content:main"
|
|
tg-graph-to-turtle = "trustgraph.cli.graph_to_turtle:main"
|
|
tg-bootstrap-iam = "trustgraph.cli.bootstrap_iam:main"
|
|
tg-login = "trustgraph.cli.login:main"
|
|
tg-create-user = "trustgraph.cli.create_user:main"
|
|
tg-list-users = "trustgraph.cli.list_users:main"
|
|
tg-whoami = "trustgraph.cli.whoami:main"
|
|
tg-update-user = "trustgraph.cli.update_user:main"
|
|
tg-disable-user = "trustgraph.cli.disable_user:main"
|
|
tg-enable-user = "trustgraph.cli.enable_user:main"
|
|
tg-delete-user = "trustgraph.cli.delete_user:main"
|
|
tg-change-password = "trustgraph.cli.change_password:main"
|
|
tg-reset-password = "trustgraph.cli.reset_password:main"
|
|
tg-create-api-key = "trustgraph.cli.create_api_key:main"
|
|
tg-list-api-keys = "trustgraph.cli.list_api_keys:main"
|
|
tg-revoke-api-key = "trustgraph.cli.revoke_api_key:main"
|
|
tg-list-workspaces = "trustgraph.cli.list_workspaces:main"
|
|
tg-create-workspace = "trustgraph.cli.create_workspace:main"
|
|
tg-invoke-agent = "trustgraph.cli.invoke_agent:main"
|
|
tg-invoke-document-rag = "trustgraph.cli.invoke_document_rag:main"
|
|
tg-invoke-graph-rag = "trustgraph.cli.invoke_graph_rag:main"
|
|
tg-invoke-llm = "trustgraph.cli.invoke_llm:main"
|
|
tg-invoke-embeddings = "trustgraph.cli.invoke_embeddings:main"
|
|
tg-invoke-graph-embeddings = "trustgraph.cli.invoke_graph_embeddings:main"
|
|
tg-invoke-document-embeddings = "trustgraph.cli.invoke_document_embeddings:main"
|
|
tg-invoke-mcp-tool = "trustgraph.cli.invoke_mcp_tool:main"
|
|
tg-invoke-nlp-query = "trustgraph.cli.invoke_nlp_query:main"
|
|
tg-invoke-rows-query = "trustgraph.cli.invoke_rows_query:main"
|
|
tg-invoke-sparql-query = "trustgraph.cli.invoke_sparql_query:main"
|
|
tg-invoke-row-embeddings = "trustgraph.cli.invoke_row_embeddings:main"
|
|
tg-invoke-prompt = "trustgraph.cli.invoke_prompt:main"
|
|
tg-invoke-structured-query = "trustgraph.cli.invoke_structured_query:main"
|
|
tg-load-doc-embeds = "trustgraph.cli.load_doc_embeds:main"
|
|
tg-load-kg-core = "trustgraph.cli.load_kg_core:main"
|
|
tg-load-sample-documents = "trustgraph.cli.load_sample_documents:main"
|
|
tg-load-turtle = "trustgraph.cli.load_turtle:main"
|
|
tg-load-knowledge = "trustgraph.cli.load_knowledge:main"
|
|
tg-load-structured-data = "trustgraph.cli.load_structured_data:main"
|
|
tg-put-flow-blueprint = "trustgraph.cli.put_flow_blueprint:main"
|
|
tg-put-kg-core = "trustgraph.cli.put_kg_core:main"
|
|
tg-remove-library-document = "trustgraph.cli.remove_library_document:main"
|
|
tg-save-doc-embeds = "trustgraph.cli.save_doc_embeds:main"
|
|
tg-set-mcp-tool = "trustgraph.cli.set_mcp_tool:main"
|
|
tg-set-prompt = "trustgraph.cli.set_prompt:main"
|
|
tg-set-token-costs = "trustgraph.cli.set_token_costs:main"
|
|
tg-set-tool = "trustgraph.cli.set_tool:main"
|
|
tg-show-config = "trustgraph.cli.show_config:main"
|
|
tg-show-flow-blueprints = "trustgraph.cli.show_flow_blueprints:main"
|
|
tg-show-flow-state = "trustgraph.cli.show_flow_state:main"
|
|
tg-show-flows = "trustgraph.cli.show_flows:main"
|
|
tg-query-graph = "trustgraph.cli.query_graph:main"
|
|
tg-show-graph = "trustgraph.cli.show_graph:main"
|
|
tg-show-kg-cores = "trustgraph.cli.show_kg_cores:main"
|
|
tg-show-library-documents = "trustgraph.cli.show_library_documents:main"
|
|
tg-show-library-processing = "trustgraph.cli.show_library_processing:main"
|
|
tg-show-mcp-tools = "trustgraph.cli.show_mcp_tools:main"
|
|
tg-show-parameter-types = "trustgraph.cli.show_parameter_types:main"
|
|
tg-show-processor-state = "trustgraph.cli.show_processor_state:main"
|
|
tg-show-prompts = "trustgraph.cli.show_prompts:main"
|
|
tg-show-token-costs = "trustgraph.cli.show_token_costs:main"
|
|
tg-show-token-rate = "trustgraph.cli.show_token_rate:main"
|
|
tg-show-tools = "trustgraph.cli.show_tools:main"
|
|
tg-start-flow = "trustgraph.cli.start_flow:main"
|
|
tg-unload-kg-core = "trustgraph.cli.unload_kg_core:main"
|
|
tg-start-library-processing = "trustgraph.cli.start_library_processing:main"
|
|
tg-stop-flow = "trustgraph.cli.stop_flow:main"
|
|
tg-stop-library-processing = "trustgraph.cli.stop_library_processing:main"
|
|
tg-verify-system-status = "trustgraph.cli.verify_system_status:main"
|
|
tg-list-config-items = "trustgraph.cli.list_config_items:main"
|
|
tg-get-config-item = "trustgraph.cli.get_config_item:main"
|
|
tg-put-config-item = "trustgraph.cli.put_config_item:main"
|
|
tg-delete-config-item = "trustgraph.cli.delete_config_item:main"
|
|
tg-export-workspace-config = "trustgraph.cli.export_workspace_config:main"
|
|
tg-import-workspace-config = "trustgraph.cli.import_workspace_config:main"
|
|
tg-list-collections = "trustgraph.cli.list_collections:main"
|
|
tg-set-collection = "trustgraph.cli.set_collection:main"
|
|
tg-delete-collection = "trustgraph.cli.delete_collection:main"
|
|
tg-show-extraction-provenance = "trustgraph.cli.show_extraction_provenance:main"
|
|
tg-list-explain-traces = "trustgraph.cli.list_explain_traces:main"
|
|
tg-show-explain-trace = "trustgraph.cli.show_explain_trace:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["trustgraph*"]
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = {attr = "trustgraph.cli_version.__version__"} |