FileVar uploads collide with REST run parameters

クローズ
#73 コメント 1 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@pheus がすでに取り組んでいます。

2026年11月3日 から。

  • #105 @pheus による — マージ済み

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
56/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python
領域
api

調査の方向性

Start at the REST run endpoint's multipart request handling and trace how uploaded file parts are separated from execution parameters. The report reproduces collisions for FileVar names commit and data; use its documented multipart requests to check both cases. Done means the endpoint accepts those uploads as variables, keeps run settings separate, and returns HTTP 201 with the file available to the Script.

索引モデルが issue の本文から書いたものです。

説明

app: scripts severity: medium status: accepted type: bug
Plugin Version

v0.0.1

NetBox Version

v4.7.3

Python Version

3.12

Steps to Reproduce
  1. Create a Script Project for uploaded files, upload the following Script, and activate its revision:
    from netbox_scripts.scripts import FileVar, Script
    
    
    class TakesNamedFile(Script):
        commit = FileVar(label='Named file')
    
        def run(self, data, commit):
            return data['commit'].read().decode()
    
  2. Create a small notes.txt file and request a run using the documented multipart format. Replace <id> with the Script's ID:
    printf 'hello\n' > notes.txt
    
    curl -i -sS -X POST \
      -H "Authorization: Token $NETBOX_TOKEN" \
      -F 'data={}' \
      -F [email protected] \
      'https://netbox.example.com/api/plugins/netbox-scripts/scripts/<id>/run/'
    
Expected Behavior

The request returns HTTP 201 and queues the Script with the uploaded file in data['commit']. The file variable is kept separate from the run's commit setting.

The REST execution guide documents file parts named after their variables and separates variable values from execution parameters.

Observed Behavior

The request returns HTTP 400:

{"commit": ["Must be a valid boolean."]}

A FileVar named data, sent alongside the JSON data part, similarly returns:

{"data": ["Value must be valid JSON."]}

The endpoint reads the uploaded file as the top-level run parameter with the same name.

This affects request handling and is separate from the OpenAPI schema change in #16.

主要言語
Python
スター
8
フォーク
0
平均マージ
11時間 22分
マージ済み PR(30日)
40

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

netbox-community/netbox-scripts のほかの issue

netbox-community/netbox-scripts の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。