# jjmoreira-projects/informatica architecture

> Architecture diagram of the GitHub repository jjmoreira-projects/informatica, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jjmoreira-projects/informatica
- Repository: https://github.com/jjmoreira-projects/informatica

## Overview

This Scriptr.io connector authenticates to Informatica Cloud, discovers jobs, and can trigger a selected job. The main workflow runs through the startTask API, TaskManager, a Task wrapper, and the authenticated HTTP client; a separate API lists or retrieves tasks. SessionManager reuses session data in Scriptr global storage and refreshes authentication when the client encounters an authorization failure. The README documents the broader session and task-management capabilities; the graph uses the supplied source for call relationships.

Main entry points: [`scripts/sessionmanagement.js`](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/sessionmanagement.js) (Session manager), [`scripts/taskmanagement.js`](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/taskmanagement.js) (Task manager), [`scripts/client.js`](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/client.js) (HTTP client), [`scripts/api/startTask.js`](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/api/startTask.js) (Start task API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Scriptr APIs"]
  node_start_api["Start task API<br/>[startTask.js]"]
  node_tasks_api["Tasks API<br/>[tasks.js]"]
end

subgraph group_domain["Connector Logic"]
  node_session_manager["Session manager"]
  node_user["User model<br/>[user.js]"]
  node_task_manager["Task manager<br/>[taskmanagement.js]"]
  node_task["Task model<br/>[task.js]"]
  node_config["Configuration<br/>[config.js]"]
  node_util["Username utility<br/>[util.js]"]
end

subgraph group_integration["Cloud Integration"]
  node_client["HTTP client<br/>[client.js]"]
  node_session_store[("Global session storage")]
end

node_caller(("API caller"))
node_informatica{{"Informatica Cloud"}}

node_caller -->|"requests run"| node_start_api
node_caller -->|"requests tasks"| node_tasks_api
node_start_api -->|"opens session"| node_session_manager
node_start_api -->|"lists tasks"| node_task_manager
node_start_api -->|"starts selected"| node_task
node_tasks_api -->|"opens session"| node_session_manager
node_tasks_api -->|"lists or finds"| node_task_manager
node_session_manager -->|"reads and writes"| node_session_store
node_session_manager -->|"normalizes username"| node_util
node_session_manager -->|"creates user"| node_user
node_session_manager -->|"authenticates"| node_informatica
node_task_manager -->|"calls API"| node_client
node_task_manager -->|"wraps task data"| node_task
node_task -->|"calls API"| node_client
node_client -->|"gets or refreshes session"| node_session_manager
node_client -->|"sends requests"| node_informatica
node_session_manager -->|"reads credentials and URL"| node_config
node_task_manager -->|"reads default type"| node_config
node_task -->|"reads default type"| node_config
node_client -->|"reads configuration"| node_config

click node_start_api "https://github.com/jjmoreira-projects/informatica/blob/master/scripts/api/startTask.js"
click node_tasks_api "https://github.com/jjmoreira-projects/informatica/blob/master/scripts/api/tasks.js"
click node_session_manager "https://github.com/jjmoreira-projects/informatica/blob/master/scripts/sessionmanagement.js"
click node_user "https://github.com/jjmoreira-projects/informatica/blob/master/scripts/user.js"
click node_task_manager "https://github.com/jjmoreira-projects/informatica/blob/master/scripts/taskmanagement.js"
click node_task "https://github.com/jjmoreira-projects/informatica/blob/master/scripts/task.js"
click node_client "https://github.com/jjmoreira-projects/informatica/blob/master/scripts/client.js"
click node_config "https://github.com/jjmoreira-projects/informatica/blob/master/scripts/config.js"
click node_util "https://github.com/jjmoreira-projects/informatica/blob/master/scripts/util.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_start_api,node_tasks_api toneBlue
class node_session_manager,node_user,node_task_manager,node_task,node_config,node_util toneAmber
class node_client,node_session_store,node_caller toneMint
class node_informatica toneIndigo
```

## Components

### Scriptr APIs

- [Start task API](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/api/startTask.js): `scripts/api/startTask.js`
- [Tasks API](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/api/tasks.js): `scripts/api/tasks.js`

### Connector Logic

- [Session manager](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/sessionmanagement.js): `scripts/sessionmanagement.js`
- [User model](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/user.js): `scripts/user.js`
- [Task manager](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/taskmanagement.js): `scripts/taskmanagement.js`
- [Task model](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/task.js): `scripts/task.js`
- [Configuration](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/config.js): `scripts/config.js`
- [Username utility](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/util.js): `scripts/util.js`

### Cloud Integration

- [HTTP client](https://github.com/jjmoreira-projects/informatica/blob/master/scripts/client.js): `scripts/client.js`
- **Global session storage**

### Other components

- **API caller**
- **Informatica Cloud**

## Connections

- API caller → Start task API: requests run
- API caller → Tasks API: requests tasks
- Start task API → Session manager: opens session
- Start task API → Task manager: lists tasks
- Start task API → Task model: starts selected
- Tasks API → Session manager: opens session
- Tasks API → Task manager: lists or finds
- Session manager → Global session storage: reads and writes
- Session manager → Username utility: normalizes username
- Session manager → User model: creates user
- Session manager → Informatica Cloud: authenticates
- Task manager → HTTP client: calls API
- Task manager → Task model: wraps task data
- Task model → HTTP client: calls API
- HTTP client → Session manager: gets or refreshes session
- HTTP client → Informatica Cloud: sends requests
- Session manager → Configuration: reads credentials and URL
- Task manager → Configuration: reads default type
- Task model → Configuration: reads default type
- HTTP client → Configuration: reads configuration
