@@ -49,8 +49,95 @@ General suggestions and warnings
49
49
Project Ideas
50
50
-------------
51
51
52
- Certificate Generator Templates
53
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52
+ Mass Commands
53
+ ~~~~~~~~~~~~~
54
+
55
+ .. image :: ../images/gsoc/ideas/2025/mass-commands.png
56
+
57
+ .. important ::
58
+
59
+ Languages and technologies used: **Python **, **Django **,
60
+ **JavaScript **, **WebSockets **, **REST API **.
61
+
62
+ **Mentors **: *Federico Capoano *, *Gagan Deep *, *Purhan Kaushik *.
63
+
64
+ **Project size **: 175 hours.
65
+
66
+ **Difficulty rate **: medium.
67
+
68
+ This project idea aims to extend OpenWISP's remote device management
69
+ capabilities by enabling users to execute shell commands on multiple
70
+ devices simultaneously. Currently, OpenWISP supports executing commands on
71
+ a single device at a time. This project will introduce a bulk execution
72
+ feature while maintaining the existing security, rules, and limitations of
73
+ the single-device command execution feature.
74
+
75
+ The mass command operation will be accessible from two main entry points:
76
+
77
+ - An admin action on the device list page, allowing users to select
78
+ multiple devices and send a shell command in bulk.
79
+ - A dedicated mass command admin section, where users can initiate bulk
80
+ command execution with various targeting options:
81
+
82
+ - All devices in the system (restricted to superusers).
83
+ - All devices within a specific organization.
84
+ - All devices within a specific device group.
85
+ - All devices within a specific geographic location.
86
+ - Specific selected devices.
87
+
88
+ The UI will guide users step-by-step, dynamically displaying relevant
89
+ fields based on the selected target scope. For example, if a user selects
90
+ "All devices in a specific organization", an auto-complete list of
91
+ organizations will be displayed next.
92
+
93
+ The system will provide real-time tracking of command execution results.
94
+ Inspired by OpenWISP Firmware Upgrader's mass upgrade feature, the UI will
95
+ receive live updates via WebSockets, displaying command output as soon as
96
+ it is received from the devices. Additionally:
97
+
98
+ - The device detail page will show executed commands under the "Recent
99
+ Commands" tab.
100
+ - Commands that were part of a mass operation will be clearly marked, with
101
+ a link to the corresponding mass command operation page.
102
+
103
+ To support API-based management, the REST API will be extended with the
104
+ following capabilities:
105
+
106
+ - Create new mass command operations.
107
+ - Retrieve mass command operations and their results (with pagination).
108
+ - Delete mass command operations.
109
+ - Modify the single-shell command API to reference the mass command
110
+ operation ID if applicable.
111
+
112
+ Prerequisites to work on this project
113
+ +++++++++++++++++++++++++++++++++++++
114
+
115
+ Applicants must demonstrate a solid understanding of Python, Django, HTML,
116
+ CSS, JavaScript, WebSockets, and `OpenWISP Controller
117
+ <https://github.com/openwisp/openwisp-controller> `__.
118
+
119
+ Expected outcomes
120
+ +++++++++++++++++
121
+
122
+ - Implementation of mass shell command execution in OpenWISP, replicating
123
+ the rules and limitations of single-device execution.
124
+ - Development of an intuitive UI with the Django admin for selecting
125
+ devices and tracking command results in real-time.
126
+ - Admin action for device list page.
127
+ - Enhancement of the device detail page to reflect mass command history
128
+ for individual devices.
129
+ - Extension of the REST API to support mass command operations.
130
+ - Comprehensive automated tests covering the new feature.
131
+ - Updated documentation, including:
132
+
133
+ - Feature description with usage instructions.
134
+ - A short example usage video for YouTube that we can showcase on the
135
+ website.
136
+
137
+ X.509 Certificate Generator Templates
138
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139
+
140
+ .. image :: ../images/gsoc/ideas/2025/x509-templates.webp
54
141
55
142
.. important ::
56
143
@@ -63,7 +150,7 @@ Certificate Generator Templates
63
150
64
151
**Difficulty rate **: medium.
65
152
66
- This GSoC project aims to enhance OpenWISP’ s certificate management
153
+ This GSoC project aims to enhance OpenWISP' s certificate management
67
154
capabilities by enabling the generation of x509 certificates for general
68
155
use, beyond OpenVPN.
69
156
@@ -81,7 +168,7 @@ provide configurable options, including:
81
168
- Key length
82
169
- Digest algorithm
83
170
84
- If left unspecified, these options should default to the CA’ s standard
171
+ If left unspecified, these options should default to the CA' s standard
85
172
settings.
86
173
87
174
Prerequisites to work on this project
@@ -97,7 +184,7 @@ Expected outcomes
97
184
- Implement a new certificate template type in OpenWISP to support
98
185
general-purpose x509 certificate generation.
99
186
- Allow users to select a CA and configure certificate properties.
100
- - Integrate with OpenWISP’ s configuration management to expose certificate
187
+ - Integrate with OpenWISP' s configuration management to expose certificate
101
188
details (public key, private key, and UUID) as variables for automated
102
189
deployment.
103
190
- Write automated tests to ensure the correctness and reliability of the
0 commit comments