Skip to main content
Solved

FEATURE REQUEST

  • October 3, 2024
  • 4 replies
  • 44 views

Forum|alt.badge.img+2

Please create a Self Service app/web clip that allows user to update inventory from their device. 

Best answer by AJPinto

Have you already submitted a feature request that you could link? People can upvote feature requests you submit to help draw attention to them.

 

 

4 replies

AJPinto
Forum|alt.badge.img+26
  • Legendary Contributor
  • Answer
  • October 3, 2024

Have you already submitted a feature request that you could link? People can upvote feature requests you submit to help draw attention to them.

 

 


dvasquez
Forum|alt.badge.img+16
  • Valued Contributor
  • October 3, 2024

You can also do this by creating a self-service policy leveraging the Files and Processes payload and setting a nice icon. Seems, like this will do exactly what you are asking but it is not a web click specifically.

Good Luck

  1. Policies
  2. User > Files and Processes
  3. put the jamf recon command in place
  4. Set it to self service 
  5. Set scope
  6. Set icon
  7. Save and test
  8.  
  9.  

sdagley
Forum|alt.badge.img+25
  • Jamf Heroes
  • October 3, 2024

@cgries A Policy that can be triggered via Self Service that has only a Maintenance payload with Update Inventory enabled does what you're asking so I'm not sure why a Feature Request would be necessary.


Forum|alt.badge.img+4
  • Contributor
  • October 6, 2024

Hello,

We have something like this in our environment. I will paste what we have below and you can see if it might work for you. 
It is a Python script running on a Mac mini with a static IP and some ports forwarded to an A record on the firewall. It allows a web clip for both blank push and inventory on iPads. It could be created for Macs as well with some slight modifications.

Here is the script:

#!/usr/local/bin/python

from flask import Flask
import requests
import time

app = Flask(__name__)

jss_user = 'API CONNECTION USERNAME HERE'
jss_pass = 'API CONNECTION PASSWORD HERE'
jss_url = 'YOUR JAMF URL HERE'
logo_url = 'YOUR APP LOGO HERE'
logo_width = '40%'
text_color = 'color:#002664'

@app.route("/")
def hello():
return "JSS Remote Commands Utility"

@app.route('/update/<id>')
def update_inventory(id):
url = jss_url+'/JSSResource/mobiledevicecommands/command/UpdateInventory/id/' + id
r = requests.post(url, auth=(jss_user,jss_pass), verify=True)
return "<html><body><center><br/><br/><img src="+logo_url+" width="+logo_width+"><h1 style="+text_color+">Update Inventory Request Sent</h1><br/><h2 style="+text_color+">The inventory process may take up to 5 minutes.<br/>You may return to the Home Screen at this time, but do not lock this iPad.</h2></center></body></html>"

@app.route('/push/<id>')
def blank_push(id):
url = jss_url+'/JSSResource/mobiledevicecommands/command/BlankPush/id/' + id
r = requests.post(url, auth=(jss_user,jss_pass), verify=True)
return "<html><body><center><br/><br/><img src="+logo_url+" width="+logo_width+"><h1 style="+text_color+">Blank Push Request Sent</h1><br/><h2 style="+text_color+">Any pending commands for this device will be received within 5 minutes.<br/>You may return to the Home Screen at this time, but do not lock this iPad.</h2></center></body></html>"

if __name__ == "__main__":
app.run(host='0.0.0.0', port=8000, debug=False)

Here is the JAMF side of things:
http://YourARecordHere:YourPortHere/update/$JSSID


Here is the firewall information:

We have a firewall rule that says from any source pointing to the A record, send it to the local IP and ONLY allow the service "python". This is with a Fortigate so your usage may be different.

Hope this helps!