# mutazn/azure-sftp-templates architecture

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

- Interactive diagram: https://gitdiagram.com/mutazn/azure-sftp-templates
- Repository: https://github.com/mutazn/azure-sftp-templates

## Overview

This repository provides two Azure Resource Manager templates for deploying an SFTP service backed by existing file shares, with an optional DNS label. The documented workflow is to create a resource group, deploy one template with Azure CLI, then connect to the deployed SFTP service using configured users. The README documents secure credentials, per-user folders, and share selection. Source excerpts were unavailable, so the graph shows only these documented relationships and does not detail template internals.

Main entry points: [`sftp-existing-stg-multi-users-with-dnslabel.json`](https://github.com/mutazn/azure-sftp-templates/blob/main/sftp-existing-stg-multi-users-with-dnslabel.json) (DNS-label template), [`sftp-existing-stg-multi-users.json`](https://github.com/mutazn/azure-sftp-templates/blob/main/sftp-existing-stg-multi-users.json) (No-DNS template)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_templates["Deployment templates"]
  node_dns_template["DNS-label template"]
  node_plain_template["No-DNS template"]
end

subgraph group_runtime["SFTP infrastructure"]
  node_container_group["SFTP container group"]
  node_file_shares[("Existing file shares")]
end

node_operator(("Operator"))
node_arm["Azure deployment"]
node_dns["DNS label"]
node_sftp_user(("SFTP user"))

node_operator -->|"deploys with CLI"| node_arm
node_arm -->|"reads template"| node_dns_template
node_arm -->|"reads template"| node_plain_template
node_arm -->|"deploys SFTP"| node_container_group
node_arm -->|"uses existing shares"| node_file_shares
node_arm -.->|"assigns optional label"| node_dns
node_sftp_user -->|"connects by SFTP"| node_container_group
node_container_group -->|"stores uploaded files"| node_file_shares

click node_dns_template "https://github.com/mutazn/azure-sftp-templates/blob/main/sftp-existing-stg-multi-users-with-dnslabel.json"
click node_plain_template "https://github.com/mutazn/azure-sftp-templates/blob/main/sftp-existing-stg-multi-users.json"

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_dns_template,node_plain_template,node_sftp_user toneBlue
class node_container_group,node_file_shares toneAmber
class node_operator,node_arm,node_dns toneIndigo
```

## Components

### Deployment templates

- [DNS-label template](https://github.com/mutazn/azure-sftp-templates/blob/main/sftp-existing-stg-multi-users-with-dnslabel.json): `sftp-existing-stg-multi-users-with-dnslabel.json`
- [No-DNS template](https://github.com/mutazn/azure-sftp-templates/blob/main/sftp-existing-stg-multi-users.json): `sftp-existing-stg-multi-users.json`

### SFTP infrastructure

- **SFTP container group**
- **Existing file shares**

### Other components

- **Operator**
- **Azure deployment**
- **DNS label**
- **SFTP user**

## Connections

- Operator → Azure deployment: deploys with CLI
- Azure deployment → DNS-label template: reads template
- Azure deployment → No-DNS template: reads template
- Azure deployment → SFTP container group: deploys SFTP
- Azure deployment → Existing file shares: uses existing shares
- Azure deployment → DNS label: assigns optional label
- SFTP user → SFTP container group: connects by SFTP
- SFTP container group → Existing file shares: stores uploaded files
