gaard-api 0.2.10__tar.gz → 0.2.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. {gaard_api-0.2.10/src/gaard_api.egg-info → gaard_api-0.2.11}/PKG-INFO +5 -5
  2. {gaard_api-0.2.10 → gaard_api-0.2.11}/pyproject.toml +5 -5
  3. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin-web/assets/main.js +16 -6
  4. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin-web/assets/styles.css +2 -1
  5. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/main.py +1 -1
  6. {gaard_api-0.2.10 → gaard_api-0.2.11/src/gaard_api.egg-info}/PKG-INFO +5 -5
  7. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api.egg-info/requires.txt +4 -4
  8. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_license_api.py +1 -1
  9. {gaard_api-0.2.10 → gaard_api-0.2.11}/MANIFEST.in +0 -0
  10. {gaard_api-0.2.10 → gaard_api-0.2.11}/README.md +0 -0
  11. {gaard_api-0.2.10 → gaard_api-0.2.11}/setup.cfg +0 -0
  12. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/__init__.py +0 -0
  13. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin/__init__.py +0 -0
  14. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin/database.py +0 -0
  15. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin/database_initial.sql +0 -0
  16. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin/database_legacy_updates.sql +0 -0
  17. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin/database_updates.sql +0 -0
  18. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin/defaults.py +0 -0
  19. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin/migration_runner.py +0 -0
  20. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin/models.py +0 -0
  21. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin/prompt_runtime.py +0 -0
  22. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin/security.py +0 -0
  23. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin/services.py +0 -0
  24. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin-web/assets/getgaard.svg +0 -0
  25. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin-web/assets/identity.js +0 -0
  26. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin-web/assets/vendor/gridstack/gridstack-all.js +0 -0
  27. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin-web/assets/vendor/gridstack/gridstack.min.css +0 -0
  28. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin-web/index.html +0 -0
  29. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/admin-web/package.json +0 -0
  30. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/api/__init__.py +0 -0
  31. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/api/v1/__init__.py +0 -0
  32. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/api/v1/admin.py +0 -0
  33. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/api/v1/analysis.py +0 -0
  34. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/api/v1/dashboards.py +0 -0
  35. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/api/v1/prompts.py +0 -0
  36. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/api/v1/query.py +0 -0
  37. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/api/v1/schema.py +0 -0
  38. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/api_registry.py +0 -0
  39. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/auth_dependencies.py +0 -0
  40. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/auth_hooks.py +0 -0
  41. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/cli.py +0 -0
  42. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/cli_commands.py +0 -0
  43. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/conversations.py +0 -0
  44. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/core/__init__.py +0 -0
  45. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/core/error_handlers.py +0 -0
  46. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/core/schema_cache.py +0 -0
  47. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/core/settings.py +0 -0
  48. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/example_data/__init__.py +0 -0
  49. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/example_data/medical_poc/__init__.py +0 -0
  50. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/example_data/medical_poc/schema.sql +0 -0
  51. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/example_data/medical_poc/seed.sql +0 -0
  52. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/example_database.py +0 -0
  53. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/extension_services.py +0 -0
  54. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/extensions.py +0 -0
  55. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/license.py +0 -0
  56. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/package_updates.py +0 -0
  57. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/py.typed +0 -0
  58. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/query_hooks.py +0 -0
  59. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/server_cli.py +0 -0
  60. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/siem.py +0 -0
  61. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api/tls_http.py +0 -0
  62. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api.egg-info/SOURCES.txt +0 -0
  63. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api.egg-info/dependency_links.txt +0 -0
  64. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api.egg-info/entry_points.txt +0 -0
  65. {gaard_api-0.2.10 → gaard_api-0.2.11}/src/gaard_api.egg-info/top_level.txt +0 -0
  66. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_admin_api.py +0 -0
  67. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_analysis_api.py +0 -0
  68. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_api_cli.py +0 -0
  69. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_api_registry.py +0 -0
  70. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_conversation_api.py +0 -0
  71. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_database_migrations.py +0 -0
  72. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_error_handlers.py +0 -0
  73. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_license_service.py +0 -0
  74. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_prompt_runtime.py +0 -0
  75. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_query_error_messages.py +0 -0
  76. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_server_cli.py +0 -0
  77. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_settings.py +0 -0
  78. {gaard_api-0.2.10 → gaard_api-0.2.11}/tests/test_tls_http.py +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gaard-api
3
- Version: 0.2.10
3
+ Version: 0.2.11
4
4
  Summary: GAARD backend web services providing admin interface
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
7
- Requires-Dist: gaard-core==0.2.10
8
- Requires-Dist: gaard-connectors==0.2.10
9
- Requires-Dist: gaard-llm==0.2.10
10
- Requires-Dist: gaard-plugin-api<0.3.0,>=0.2.10
7
+ Requires-Dist: gaard-core==0.2.11
8
+ Requires-Dist: gaard-connectors==0.2.11
9
+ Requires-Dist: gaard-llm==0.2.11
10
+ Requires-Dist: gaard-plugin-api<0.3.0,>=0.2.11
11
11
  Requires-Dist: fastapi>=0.111.0
12
12
  Requires-Dist: uvicorn[standard]>=0.30.0
13
13
  Requires-Dist: pydantic>=2.7.0
@@ -4,16 +4,16 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "gaard-api"
7
- version = "0.2.10"
7
+ version = "0.2.11"
8
8
  description = "GAARD backend web services providing admin interface"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
11
11
 
12
12
  dependencies = [
13
- "gaard-core==0.2.10",
14
- "gaard-connectors==0.2.10",
15
- "gaard-llm==0.2.10",
16
- "gaard-plugin-api>=0.2.10,<0.3.0",
13
+ "gaard-core==0.2.11",
14
+ "gaard-connectors==0.2.11",
15
+ "gaard-llm==0.2.11",
16
+ "gaard-plugin-api>=0.2.11,<0.3.0",
17
17
  "fastapi>=0.111.0",
18
18
  "uvicorn[standard]>=0.30.0",
19
19
  "pydantic>=2.7.0",
@@ -23,6 +23,7 @@ var builtInSectionLabels = {
23
23
  };
24
24
  var ADMIN_SECTION_STORAGE_KEY = "gaard_admin_section";
25
25
  var ADMIN_MENU_GROUPS_STORAGE_KEY = "gaard_admin_menu_groups";
26
+ var EXTENSION_FRAME_MIN_HEIGHT = 420;
26
27
  function getInitialAdminSection() {
27
28
  const storedSection = localStorage.getItem(ADMIN_SECTION_STORAGE_KEY);
28
29
  return storedSection && (builtInSectionLabels[storedSection] || storedSection.startsWith("extension:")) ? storedSection : "overview";
@@ -639,18 +640,26 @@ function initializeExtensionFrameHeight(frame) {
639
640
  }
640
641
  function getExtensionFrameContentHeight(frame) {
641
642
  const reportedHeight = Number(frame.dataset.extensionContentHeight);
642
- if (Number.isFinite(reportedHeight) && reportedHeight > 0) return reportedHeight;
643
+ if (Number.isFinite(reportedHeight) && reportedHeight > 0) {
644
+ return Math.max(reportedHeight, EXTENSION_FRAME_MIN_HEIGHT);
645
+ }
643
646
  try {
644
647
  const documentElement = frame.contentDocument?.documentElement;
645
648
  const body = frame.contentDocument?.body;
646
- return Math.max(documentElement?.scrollHeight || 0, body?.scrollHeight || 0, 1);
649
+ return Math.max(
650
+ documentElement?.scrollHeight || 0,
651
+ documentElement?.offsetHeight || 0,
652
+ body?.scrollHeight || 0,
653
+ body?.offsetHeight || 0,
654
+ EXTENSION_FRAME_MIN_HEIGHT
655
+ );
647
656
  } catch {
648
- return getExtensionFrameMaxHeight(frame);
657
+ return Math.max(getExtensionFrameMaxHeight(frame), EXTENSION_FRAME_MIN_HEIGHT);
649
658
  }
650
659
  }
651
660
  function getExtensionFrameMaxHeight(frame) {
652
661
  const content = frame.closest(".content");
653
- if (!content) return Number.POSITIVE_INFINITY;
662
+ if (!content) return EXTENSION_FRAME_MIN_HEIGHT;
654
663
  const styles = window.getComputedStyle(content);
655
664
  const paddingTop = Number.parseFloat(styles.paddingTop) || 0;
656
665
  const paddingBottom = Number.parseFloat(styles.paddingBottom) || 0;
@@ -661,10 +670,11 @@ function getExtensionFrameMaxHeight(frame) {
661
670
  paddingBottom +
662
671
  (messageRegion?.offsetHeight || 0) +
663
672
  (messageRegion ? rowGap : 0);
664
- return Math.max(1, content.clientHeight - reservedHeight);
673
+ return Math.max(EXTENSION_FRAME_MIN_HEIGHT, content.clientHeight - reservedHeight);
665
674
  }
666
675
  function setExtensionFrameHeight(frame, height) {
667
- frame.style.height = `${Math.ceil(Math.max(height + 2, 1))}px`;
676
+ const normalizedHeight = Number.isFinite(height) ? height : EXTENSION_FRAME_MIN_HEIGHT;
677
+ frame.style.height = `${Math.ceil(Math.max(normalizedHeight + 2, EXTENSION_FRAME_MIN_HEIGHT))}px`;
668
678
  }
669
679
  window.addEventListener("message", (event) => {
670
680
  if (event.origin !== window.location.origin) return;
@@ -741,7 +741,8 @@ label {
741
741
  .extension-frame {
742
742
  display: block;
743
743
  width: 100%;
744
- height: 1px;
744
+ height: 420px;
745
+ min-height: 420px;
745
746
  border: 1px solid var(--line);
746
747
  border-radius: 6px;
747
748
  background: white;
@@ -40,7 +40,7 @@ async def lifespan(app: FastAPI) -> AsyncIterator[None]:
40
40
 
41
41
  app = FastAPI(
42
42
  title="GAARD API",
43
- version="0.2.10",
43
+ version="0.2.11",
44
44
  description="Self-hosted AI SQL Gateway for governed natural-language access to relational data.",
45
45
  lifespan=lifespan,
46
46
  )
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gaard-api
3
- Version: 0.2.10
3
+ Version: 0.2.11
4
4
  Summary: GAARD backend web services providing admin interface
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
7
- Requires-Dist: gaard-core==0.2.10
8
- Requires-Dist: gaard-connectors==0.2.10
9
- Requires-Dist: gaard-llm==0.2.10
10
- Requires-Dist: gaard-plugin-api<0.3.0,>=0.2.10
7
+ Requires-Dist: gaard-core==0.2.11
8
+ Requires-Dist: gaard-connectors==0.2.11
9
+ Requires-Dist: gaard-llm==0.2.11
10
+ Requires-Dist: gaard-plugin-api<0.3.0,>=0.2.11
11
11
  Requires-Dist: fastapi>=0.111.0
12
12
  Requires-Dist: uvicorn[standard]>=0.30.0
13
13
  Requires-Dist: pydantic>=2.7.0
@@ -1,7 +1,7 @@
1
- gaard-core==0.2.10
2
- gaard-connectors==0.2.10
3
- gaard-llm==0.2.10
4
- gaard-plugin-api<0.3.0,>=0.2.10
1
+ gaard-core==0.2.11
2
+ gaard-connectors==0.2.11
3
+ gaard-llm==0.2.11
4
+ gaard-plugin-api<0.3.0,>=0.2.11
5
5
  fastapi>=0.111.0
6
6
  uvicorn[standard]>=0.30.0
7
7
  pydantic>=2.7.0
@@ -100,7 +100,7 @@ def package_bundle_zip(
100
100
  "version": package_version,
101
101
  "plan": pack,
102
102
  "file_name": f"gaard-{pack}-pack-{package_version}.zip",
103
- "gaard_version": ">=0.2.10",
103
+ "gaard_version": ">=0.2.11",
104
104
  "description": "Test package bundle",
105
105
  "packages": [
106
106
  {
File without changes
File without changes
File without changes