├── .gitignore ├── bestbuy-dataflow ├── BestBuy-Dataflow-Part1.xml ├── BestBuy-Dataflow-Part2.xml ├── BestBuy-Dataflow-Part3.xml ├── bestbuy-dataflow-part4.xml ├── bestbuy-dataflow-part5.xml ├── bestbuy-dataflow-part6.xml ├── bestbuy-dataflow-part7.xml └── readme.txt ├── nifi-api ├── README.md ├── docker-compose.yml └── nifi_rest_api.json └── templates ├── Wait and Notify Dataflow.xml └── websocket ├── WebSocket_Dataflow_Part_1.xml ├── WebSocket_Dataflow_Part_2.xml └── main.py /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skoonData/apache-nifi/5d000f64509438f4e4df0d86564ecc7bf8c3224a/.gitignore -------------------------------------------------------------------------------- /bestbuy-dataflow/BestBuy-Dataflow-Part1.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skoonData/apache-nifi/5d000f64509438f4e4df0d86564ecc7bf8c3224a/bestbuy-dataflow/BestBuy-Dataflow-Part1.xml -------------------------------------------------------------------------------- /bestbuy-dataflow/BestBuy-Dataflow-Part2.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skoonData/apache-nifi/5d000f64509438f4e4df0d86564ecc7bf8c3224a/bestbuy-dataflow/BestBuy-Dataflow-Part2.xml -------------------------------------------------------------------------------- /bestbuy-dataflow/BestBuy-Dataflow-Part3.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skoonData/apache-nifi/5d000f64509438f4e4df0d86564ecc7bf8c3224a/bestbuy-dataflow/BestBuy-Dataflow-Part3.xml -------------------------------------------------------------------------------- /bestbuy-dataflow/bestbuy-dataflow-part4.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skoonData/apache-nifi/5d000f64509438f4e4df0d86564ecc7bf8c3224a/bestbuy-dataflow/bestbuy-dataflow-part4.xml -------------------------------------------------------------------------------- /bestbuy-dataflow/bestbuy-dataflow-part5.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skoonData/apache-nifi/5d000f64509438f4e4df0d86564ecc7bf8c3224a/bestbuy-dataflow/bestbuy-dataflow-part5.xml -------------------------------------------------------------------------------- /bestbuy-dataflow/bestbuy-dataflow-part6.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skoonData/apache-nifi/5d000f64509438f4e4df0d86564ecc7bf8c3224a/bestbuy-dataflow/bestbuy-dataflow-part6.xml -------------------------------------------------------------------------------- /bestbuy-dataflow/bestbuy-dataflow-part7.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skoonData/apache-nifi/5d000f64509438f4e4df0d86564ecc7bf8c3224a/bestbuy-dataflow/bestbuy-dataflow-part7.xml -------------------------------------------------------------------------------- /bestbuy-dataflow/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skoonData/apache-nifi/5d000f64509438f4e4df0d86564ecc7bf8c3224a/bestbuy-dataflow/readme.txt -------------------------------------------------------------------------------- /nifi-api/README.md: -------------------------------------------------------------------------------- 1 | # Working with the NiFi REST API 2 | This video will get you started working with the NiFi Rest API 1.18.0 3 | 4 | ### Requirements 5 | - Docker Desktop 6 | - VS Code 7 | 8 | ### VS Code Extensions 9 | - Local 10 | - [Remote Development](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack) 11 | - WSL:Ubuntu-20.04 12 | - [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) 13 | - [Thunder Client](https://marketplace.visualstudio.com/items?itemName=rangav.vscode-thunder-client) 14 | 15 | ### Environment Setup 16 | 1. Clone the repo. 17 | 18 | 2. Create "nifi" docker network. 19 | ```bash 20 | docker network create nifi 21 | ``` 22 | 3. Run the NiFi container. 23 | 24 | ```bash 25 | docker compose up -d 26 | ``` 27 | 28 | 4. Use the username and password from docker-compose.yml to access the NiFi UI. 29 | 30 | 5. Watch the video. 31 | 32 | 6. When your done you can use this command to remove the container and volumes that are were created. 33 | ```bash 34 | docker compose down -v 35 | ``` 36 | 37 | 38 | ### Links 39 | - [Apache NiFi Docs](https://nifi.apache.org/docs.html) 40 | -------------------------------------------------------------------------------- /nifi-api/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | nifi: 4 | container_name: nifi 5 | image: 'apache/nifi:1.18.0' 6 | ports: 7 | - 9443:9443 8 | environment: 9 | - SINGLE_USER_CREDENTIALS_USERNAME=admin 10 | - SINGLE_USER_CREDENTIALS_PASSWORD=ctsBtRBKHRAx69EqUghvvgEvjnaLjFEB 11 | - NIFI_WEB_HTTPS_PORT=9443 12 | volumes: 13 | - nifi_content_repository:/opt/nifi/nifi-current/content_repository 14 | - nifi_database_repository:/opt/nifi/nifi-current/database_repository 15 | - nifi_flowfile_repository:/opt/nifi/nifi-current/flowfile_repository 16 | - nifi_provenance_repository:/opt/nifi/nifi-current/provenance_repository 17 | - nifi_logs:/opt/nifi/nifi-current/logs 18 | - nifi_state:/opt/nifi/nifi-current/state 19 | - nifi_conf:/opt/nifi/nifi-current/conf 20 | 21 | networks: 22 | default: 23 | name: nifi 24 | external: true 25 | 26 | volumes: 27 | nifi_content_repository: 28 | nifi_database_repository: 29 | nifi_flowfile_repository: 30 | nifi_provenance_repository: 31 | nifi_logs: 32 | nifi_state: 33 | nifi_conf: -------------------------------------------------------------------------------- /nifi-api/nifi_rest_api.json: -------------------------------------------------------------------------------- 1 | { 2 | "client": "Thunder Client", 3 | "collectionName": "NiFi", 4 | "dateExported": "2022-10-25T05:38:21.286Z", 5 | "version": "1.1", 6 | "folders": [], 7 | "requests": [ 8 | { 9 | "_id": "d1d57600-0f89-4889-a93c-20732966079c", 10 | "colId": "c4bdb468-1b71-4b79-83f8-05d20c9b4aa2", 11 | "containerId": "", 12 | "name": "/access/config", 13 | "url": "https://localhost:9443/nifi-api/access/config", 14 | "method": "GET", 15 | "sortNum": 10000, 16 | "created": "2022-10-24T05:23:01.579Z", 17 | "modified": "2022-10-25T05:31:27.916Z", 18 | "headers": [ 19 | { 20 | "name": "User-Agent", 21 | "value": "Thunder Client (https://www.thunderclient.com)", 22 | "isDisabled": true 23 | } 24 | ], 25 | "params": [], 26 | "tests": [] 27 | }, 28 | { 29 | "_id": "6c6c3a5f-84cb-4b2f-9060-e7c8b436db88", 30 | "colId": "c4bdb468-1b71-4b79-83f8-05d20c9b4aa2", 31 | "containerId": "", 32 | "name": "/access/token", 33 | "url": "https://localhost:9443/nifi-api/access/token?username=admin&password=ctsBtRBKHRAx69EqUghvvgEvjnaLjFEB", 34 | "method": "POST", 35 | "sortNum": 20000, 36 | "created": "2022-10-24T05:23:38.047Z", 37 | "modified": "2022-10-24T05:53:30.898Z", 38 | "headers": [ 39 | { 40 | "name": "Content-Type", 41 | "value": "application/x-www-form-urlencoded" 42 | }, 43 | { 44 | "name": "User-Agent", 45 | "value": "Thunder Client (https://www.thunderclient.com)", 46 | "isDisabled": true 47 | } 48 | ], 49 | "params": [ 50 | { 51 | "name": "username", 52 | "value": "admin", 53 | "isPath": false 54 | }, 55 | { 56 | "name": "password", 57 | "value": "ctsBtRBKHRAx69EqUghvvgEvjnaLjFEB", 58 | "isPath": false 59 | } 60 | ], 61 | "tests": [] 62 | }, 63 | { 64 | "_id": "fb60a95e-6e8c-4733-837c-e8434b75c26c", 65 | "colId": "c4bdb468-1b71-4b79-83f8-05d20c9b4aa2", 66 | "containerId": "", 67 | "name": "/access/token/expiration", 68 | "url": "https://localhost:9443/nifi-api/access/token/expiration", 69 | "method": "GET", 70 | "sortNum": 22500, 71 | "created": "2022-10-24T05:56:18.703Z", 72 | "modified": "2022-10-25T05:31:05.914Z", 73 | "headers": [ 74 | { 75 | "name": "Authorization", 76 | "value": "" 77 | } 78 | ], 79 | "params": [], 80 | "tests": [] 81 | }, 82 | { 83 | "_id": "ec37d4ca-999a-4e33-9204-e73330e55744", 84 | "colId": "c4bdb468-1b71-4b79-83f8-05d20c9b4aa2", 85 | "containerId": "", 86 | "name": "/system-diagnostics", 87 | "url": "https://localhost:9443/nifi-api/system-diagnostics", 88 | "method": "GET", 89 | "sortNum": 30000, 90 | "created": "2022-10-24T05:26:07.491Z", 91 | "modified": "2022-10-25T05:31:40.709Z", 92 | "headers": [ 93 | { 94 | "name": "Authorization", 95 | "value": "" 96 | }, 97 | { 98 | "name": "User-Agent", 99 | "value": "Thunder Client (https://www.thunderclient.com)", 100 | "isDisabled": true 101 | } 102 | ], 103 | "params": [], 104 | "tests": [] 105 | }, 106 | { 107 | "_id": "f3b7cf42-7276-42eb-8f1e-0c000987c8d2", 108 | "colId": "c4bdb468-1b71-4b79-83f8-05d20c9b4aa2", 109 | "containerId": "", 110 | "name": "/flow/processors/{id}/status", 111 | "url": "https://localhost:9443/nifi-api/flow/processors/{id}/status", 112 | "method": "GET", 113 | "sortNum": 40000, 114 | "created": "2022-10-24T06:09:35.237Z", 115 | "modified": "2022-10-25T05:33:31.555Z", 116 | "headers": [ 117 | { 118 | "name": "Authorization", 119 | "value": "" 120 | }, 121 | { 122 | "name": "User-Agent", 123 | "value": "Thunder Client (https://www.thunderclient.com)", 124 | "isDisabled": true 125 | } 126 | ], 127 | "params": [ 128 | { 129 | "name": "id", 130 | "value": "0d99434c-0184-1000-2258-5a048916406b", 131 | "isPath": true 132 | } 133 | ], 134 | "tests": [] 135 | }, 136 | { 137 | "_id": "e15cbc45-8baa-422a-a8f3-f7dab6977f80", 138 | "colId": "c4bdb468-1b71-4b79-83f8-05d20c9b4aa2", 139 | "containerId": "", 140 | "name": "/processors/run-status-details/queries", 141 | "url": "https://localhost:9443/nifi-api/processors/run-status-details/queries", 142 | "method": "POST", 143 | "sortNum": 45000, 144 | "created": "2022-10-24T06:23:12.940Z", 145 | "modified": "2022-10-25T05:34:29.184Z", 146 | "headers": [ 147 | { 148 | "name": "Authorization", 149 | "value": "" 150 | }, 151 | { 152 | "name": "User-Agent", 153 | "value": "Thunder Client (https://www.thunderclient.com)", 154 | "isDisabled": true 155 | }, 156 | { 157 | "name": "Content-Type", 158 | "value": "application/json" 159 | } 160 | ], 161 | "params": [], 162 | "body": { 163 | "type": "json", 164 | "raw": "{\n \"processorIds\": [\"0d99434c-0184-1000-2258-5a048916406b\"]\n}", 165 | "form": [] 166 | }, 167 | "tests": [] 168 | }, 169 | { 170 | "_id": "9a8efaef-a4a2-470d-b347-a61202f702e6", 171 | "colId": "c4bdb468-1b71-4b79-83f8-05d20c9b4aa2", 172 | "containerId": "", 173 | "name": "/processors/{id}/run-status", 174 | "url": "https://localhost:9443/nifi-api/processors/{id}/run-status", 175 | "method": "PUT", 176 | "sortNum": 50000, 177 | "created": "2022-10-24T06:14:25.477Z", 178 | "modified": "2022-10-25T05:36:39.619Z", 179 | "headers": [ 180 | { 181 | "name": "Authorization", 182 | "value": "" 183 | }, 184 | { 185 | "name": "User-Agent", 186 | "value": "Thunder Client (https://www.thunderclient.com)", 187 | "isDisabled": true 188 | }, 189 | { 190 | "name": "Content-Type", 191 | "value": "application/json" 192 | } 193 | ], 194 | "params": [ 195 | { 196 | "name": "id", 197 | "value": "0d99434c-0184-1000-2258-5a048916406b", 198 | "isPath": true 199 | } 200 | ], 201 | "body": { 202 | "type": "json", 203 | "raw": "{\n \"revision\": {\n \"version\": 15,\n \"lastModifier\": \"steven\"\n },\n \"state\": \"RUN_ONCE\"\n}", 204 | "form": [] 205 | }, 206 | "tests": [] 207 | } 208 | ] 209 | } -------------------------------------------------------------------------------- /templates/websocket/WebSocket_Dataflow_Part_1.xml: -------------------------------------------------------------------------------- 1 | 2 |