diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 0d3cb38..a135d93 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,29 +5,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -65,6 +44,9 @@
+
+
+ {
"associatedIndex": 2
}
@@ -76,44 +58,45 @@
- {
- "keyToString": {
- "NIXITCH_NIXPKGS_CONFIG": "",
- "NIXITCH_NIX_CONF_DIR": "",
- "NIXITCH_NIX_OTHER_STORES": "",
- "NIXITCH_NIX_PATH": "",
- "NIXITCH_NIX_PROFILES": "",
- "NIXITCH_NIX_REMOTE": "",
- "NIXITCH_NIX_USER_PROFILE_DIR": "",
- "Node.js.index.ts.executor": "Run",
- "RunOnceActivity.MCP Project settings loaded": "true",
- "RunOnceActivity.ShowReadmeOnStart": "true",
- "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
- "RunOnceActivity.git.unshallow": "true",
- "RunOnceActivity.typescript.service.memoryLimit.init": "true",
- "com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
- "git-widget-placeholder": "main",
- "go.import.settings.migrated": "true",
- "javascript.preferred.runtime.type.id": "node",
- "junie.onboarding.icon.badge.shown": "true",
- "last_opened_file_path": "//wsl.localhost/Ubuntu/home/ahilbig/git/vcr/zabbix-graphql-api/src",
- "node.js.detected.package.eslint": "true",
- "node.js.detected.package.tslint": "true",
- "node.js.selected.package.eslint": "(autodetect)",
- "node.js.selected.package.tslint": "(autodetect)",
- "nodejs_interpreter_path": "wsl://Ubuntu@/home/ahilbig/.nvm/versions/node/v24.12.0/bin/node",
- "nodejs_package_manager_path": "npm",
- "npm.codegen.executor": "Run",
- "npm.compile.executor": "Run",
- "npm.copy-schema.executor": "Run",
- "npm.prod.executor": "Run",
- "npm.test.executor": "Run",
- "settings.editor.selected.configurable": "settings.javascript.runtime",
- "to.speed.mode.migration.done": "true",
- "ts.external.directory.path": "\\\\wsl.localhost\\Ubuntu\\home\\ahilbig\\git\\vcr\\zabbix-graphql-api\\node_modules\\typescript\\lib",
- "vue.rearranger.settings.migration": "true"
+
+}]]>
@@ -382,7 +365,15 @@
1769535965695
-
+
+
+ 1769582068426
+
+
+
+ 1769582068426
+
+
diff --git a/.junie/guidelines.md b/.junie/guidelines.md
index c72f30e..da28a59 100644
--- a/.junie/guidelines.md
+++ b/.junie/guidelines.md
@@ -1,4 +1,37 @@
-# Junie Guidelines
+# Project Guidelines
-- Always include "Optimize imports" as a step in the plan before executing any commits or finishing a task (via `submit`).
-- This ensures consistency with the project's IntelliJ IDEA settings (`OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT` is enabled).
+This document provides concise information and best practices for developers working on the Zabbix GraphQL API project.
+
+## Tech Stack
+- **Runtime**: Node.js (v18+)
+- **Language**: TypeScript (ESM)
+- **API**: GraphQL (Apollo Server 4)
+- **Testing**: Jest
+- **Deployment**: Docker
+
+## Project Structure
+- `src/api/`: GraphQL server configuration, schema loading, and root resolvers (see `createResolvers` in `resolvers.ts`).
+- `src/datasources/`: Modular classes for interacting with various Zabbix API components (hosts, items, etc.).
+- `src/execution/`: Business logic for complex, multi-step operations (importers, exporters, deleters).
+- `src/model/`: Shared data models and enumerations.
+- `src/test/`: Unit and integration tests.
+- `schema/`: GraphQL Schema Definition Language (SDL) files.
+
+## Common Scripts
+- `npm run start`: Launches the development server with `tsx` and `nodemon` for hot-reloading.
+- `npm run test`: Executes the Jest test suite.
+- `npm run codegen`: Generates TypeScript types based on the GraphQL schema definitions.
+- `npm run compile`: Compiles TypeScript source files into the `dist/` directory.
+- `npm run prod`: Prepares the schema and runs the compiled production build.
+
+## Best Practices & Standards
+- **ESM & Imports**: The project uses ECMAScript Modules (ESM). Always use the `.js` extension when importing local files (e.g., `import { Config } from "../common_utils.js";`), even though the source files are `.ts`.
+- **Configuration**: Always use the `Config` class to access environment variables. Avoid direct `process.env` calls.
+- **Type Safety**: Leverage types generated via `npm run codegen` for resolvers and data handling to ensure consistency with the schema.
+- **Import Optimization**:
+ - Always optimize imports before committing.
+ - Project setting `OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT` is enabled.
+ - Junie should include "Optimize imports" as a step in every plan.
+- **Modular Datasources**: When adding support for new Zabbix features, create a new datasource class in `src/datasources/` extending `ZabbixRESTDataSource`.
+- **Schema Organization**: Place GraphQL SDL files in the `schema/` directory. Use descriptive comments in SDL as they are used for API documentation.
+- **Testing**: Write reproduction tests for bugs and cover new features with both unit and integration tests in `src/test/`.