You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

 

Scope

  • The JobScheduler Web Services API can be used by any client program or job that has to access JobScheduler objects, such as adding an order to a job chain.
  • The Web Services API is a replacement for the XML Interface. and supports authentication and authorization.

 

called using an HTTP client. The commands available to such a client form a subset of the commands used by the JOC Cockpit and are

A valid Username / Password has to be provided by the client. The Username & Password and permissions for the command(s) to be executed have to be configured in the shiro.ini and other authorization resources, if used. See the Authentication and Authorization - Configuration article and the example api_user configuration for further information.

The following diagram shows the full permissions hierarchy that can be specified for an API user to allow them to address the JobScheduler Web Services API. 

A system administrator would then integrate the permissions necessary to carry out the operations required in the authorization system used by the Web Services API. More information about how this can be done is available in the Authentication and Authorization - Configuration article.

The following table shows all the permissions that can be set to allow an API user to address the JobScheduler Web Services API.

Note that while this list is similar to the JOC Cockpit user permissions there are significant differences between the two permission sets.

ObjectPermissionComment
Commandssos:products:commands:jobscheduler_master:view:status<show_state/>
 sos:products:commands:jobscheduler_master:view:parameter

Shows parameters from scheduler.xml

<params.get/>

<param.get name="..."/>

 sos:products:commands:jobscheduler_master:execute:restart:terminate<terminate restart="yes"/>
 sos:products:commands:jobscheduler_master:execute:restart:abort 
 sos:products:commands:jobscheduler_master:execute:pause 
 sos:products:commands:jobscheduler_master:execute:continue 
 sos:products:commands:jobscheduler_master:execute:terminate 
 sos:products:commands:jobscheduler_master:execute:abort 
 sos:products:commands:jobscheduler_master:execute:stop 
 sos:products:commands:jobscheduler_master:manage_categories 
 sos:products:commands:jobscheduler_master_cluster:execute:terminate_fail_safe
 sos:products:commands:jobscheduler_master_cluster:execute:restart<terminate restart="yes"/> ??
 sos:products:commands:jobscheduler_master_cluster:execute:terminate<terminate/>
 sos:products:commands:history:view<show_history/>
 sos:products:commands:order:view:status<show_state/>
 sos:products:commands:order:change:start_and_end_node 
 sos:products:commands:order:change:time_for_adhoc_orders 
 sos:products:commands:order:change:parameter 
 sos:products:commands:order:change:run_time 
 sos:products:commands:order:change:state 
 sos:products:commands:order:change:other 
 sos:products:commands:order:change:hot_folder<modify_hot_folder>
 sos:products:commands:order:execute:start 
 sos:products:commands:order:execute:update 
 sos:products:commands:order:execute:suspend 
 sos:products:commands:order:execute:resume 
 sos:products:commands:order:execute:reset 
 sos:products:commands:order:execute:remove_setback 
 sos:products:commands:order:delete<remove_order>
 sos:products:commands:job_chain:view:status<show_state/>
 sos:products:commands:job_chain:execute:stop 
 sos:products:commands:job_chain:execute:unstop 
 sos:products:commands:job_chain:execute:add_order 
 sos:products:commands:job_chain:execute:skip_jobchain_node 
 sos:products:commands:job_chain:execute:process_jobchain_node 
 sos:products:commands:job_chain:execute:stop_jobchain_node 
 sos:products:commands:job_chain:change:hot_folder<modify_hot_folder>
 sos:products:commands:job:view:status<show_state/>
 sos:products:commands:job:change:run_time 
 sos:products:commands:job:change:hot_folder 
 sos:products:commands:job:execute:start 
 sos:products:commands:job:execute:stop 
 sos:products:commands:job:execute:unstop 
 sos:products:commands:job:execute:terminate 
 sos:products:commands:job:execute:unstop 
 sos:products:commands:job:execute:kill 
 sos:products:commands:job:execute:end_all_tasks 
 sos:products:commands:job:execute:suspend_all_tasks 
 sos:products:commands:job:execute:continue_all_tasks 
 sos:products:commands:process_class:view:status<show_state/>
 sos:products:commands:process_class:edit:change 
 sos:products:commands:process_class:edit:remove 
 sos:products:commands:process_class:modify_hot_folder 
 sos:products:commands:schedule:view:status<show_state/>
 sos:products:commands:schedule:add_substitute 
 sos:products:commands:schedule:modify_hot_folder 
 sos:products:commands:lock:view:status<show_state/>

JSON Answer with the permissions of an user

The answer of http://localhost:8080/rest/security/joc_cockpit_permissions is this JSON object.

The valueOf(right) will be evaluated to the true/false.

To get the value true the user must have a role x that contains the right specified in the brackets.

 

{
  "isAuthenticated": true,
  "user": "SOS01",
  "accessToken": "dfd96e2c-ef7f-4158-acf3-1af98d4407c4",
  "JobschedulerMaster": {
    "view": {
      "status": valueOf(sos:products:joc_cockpit:jobscheduler_master:view:status),
      "mainlog": valueOf(sos:products:joc_cockpit:jobscheduler_master:view:mainlog)
    },
    "pause": valueOf(sos:products:joc_cockpit:jobscheduler_master:pause),
    "continue": valueOf(sos:products:joc_cockpit:jobscheduler_master:continue),
    "restart": {
      "terminate": valueOf(sos:products:joc_cockpit:jobscheduler_master:restart:terminate),
      "abort": valueOf(sos:products:joc_cockpit:jobscheduler_master:restart:abort)
    },
    "terminate": valueOf(sos:products:joc_cockpit:jobscheduler_master:terminate),
    "abort": valueOf(sos:products:joc_cockpit:jobscheduler_master:abort),
    "manageCategories": sos:products:joc_cockpit:jobscheduler_master:manage_categories)
  },
  "JobschedulerMasterCluster": {
    "view": {
      "clusterStatus": valueOf(sos:products:joc_cockpit:jobscheduler_master_cluster:view:cluster_status)
    },
    "terminateFailSafe": valueOf(sos:products:joc_cockpit:jobscheduler_master_cluster:terminate_fail_safe),
    "restart": valueOf(sos:products:joc_cockpit:jobscheduler_master_cluster:terminate_cluster_member:restart),
    "terminate": valueOf(sos:products:joc_cockpit:jobscheduler_master_cluster:terminate_cluster_member:terminate)
  },
  "JobschedulerUniversalAgent": {
    "view": {
      "status": valueOf(sos:products:joc_cockpit:jobscheduler_universal_agent:view:status)
    },
    "terminate": valueOf(sos:products:joc_cockpit:jobscheduler_universal_agent:terminate),
    "abort": valueOf(sos:products:joc_cockpit:jobscheduler_universal_agent:abort),
    "restart": {
      "terminate": valueOf(sos:products:joc_cockpit:jobscheduler_universal_agent:restart:terminate),
      "abort": valueOf(sos:products:joc_cockpit:jobscheduler_universal_agent:restart:abort)
    }
  },
  "DailyPlan": {
    "view": {
      "status": valueOf(sos:products:joc_cockpit:daily_plan:view_status)
    }
  },
  "History": {
    "view": valueOf(sos:products:joc_cockpit:history:view)
  },
  "Order": {
    "view": {
      "configuration": valueOf(sos:products:joc_cockpit:order:view:configuration),
      "orderLog": valueOf(sos:products:joc_cockpit:order:view:order_log),
      "status": valueOf(sos:products:joc_cockpit:order:view:status)
    },
    "change": {
      "startAndEndNode": valueOf(sos:products:joc_cockpit:order:change:start_and_end_node),
      "timeForAdhocOrder": valueOf(sos:products:joc_cockpit:order:change:time_for_adhoc_orders),
      "parameter": valueOf(sos:products:joc_cockpit:order:change:parameter)
    },
    "start": valueOf(sos:products:joc_cockpit:order:start),
    "update": valueOf(sos:products:joc_cockpit:order:update),
    "suspend": valueOf(sos:products:joc_cockpit:order:suspend),
    "resume": valueOf(sos:products:joc_cockpit:order:resume),
    "delete": {
      "temporary": valueOf(sos:products:joc_cockpit:order:delete:temporary)
      "permanent": valueOf(sos:products:joc_cockpit:order:delete:permanent)
      }
    },
    "removeSetback": valueOf(sos:products:joc_cockpit:order:remove_setback)
  },
  "JobChain": {
    "view": {
      "configuration": valueOf(sos:products:joc_cockpit:job_chain:view:configuration),
      "history": valueOf(sos:products:joc_cockpit:job_chain:view:history),
      "status": valueOf(sos:products:joc_cockpit:job_chain:view:status)
    },
    "stop": valueOf(sos:products:joc_cockpit:job_chain:stop),
    "unstop": valueOf(sos:products:joc_cockpit:job_chain:unstop),
    "addOrder": valueOf(sos:products:joc_cockpit:job_chain:add_order),
    "skipJobChainNode": valueOf(sos:products:joc_cockpit:job_chain:skip_jobchain_node),
    "unskipJobChainNode": valueOf(sos:products:joc_cockpit:job_chain:unskip_jobchain_node),
    "stopJobChainNode": valueOf(sos:products:joc_cockpit:job_chain:stop_jobchain_node),
    "unstopJobChainNode": valueOf(sos:products:joc_cockpit:job_chain:unstop_jobchain_node)
  },
  "Job": {
    "view": {
      "status": valueOf(sos:products:joc_cockpit:job:view:status),
      "taskLog": valueOf(sos:products:joc_cockpit:job:view:task_log),
      "configuration": valueOf(sos:products:joc_cockpit:job:view:configuration),
      "history": valueOf(sos:products:joc_cockpit:job:view:history)
    },
    "start": {
      "task": valueOf(sos:products:joc_cockpit:job:start:task),
      "taskImmediately": valueOf(sos:products:joc_cockpit:job:start:task_immediately)
    },
    "stop": valueOf(sos:products:joc_cockpit:job:stop),
    "unstop": valueOf(sos:products:joc_cockpit:job:unstop),
    "terminate": valueOf(sos:products:joc_cockpit:job:terminate),
    "kill": valueOf(sos:products:joc_cockpit:job:kill)
  },
  "ProcessClass": {
    "view": {
      "status": valueOf(sos:products:joc_cockpit:process_class:view:status),
      "configuration": valueOf(sos:products:joc_cockpit:process_class:view:configuration)
    }
  },
  "Schedule": {
    "view": {
      "status": valueOf(sos:products:joc_cockpit:schedule:view:status),
      "configuration": valueOf(sos:products:joc_cockpit:schedule:view:configuration)
    },
    "edit": valueOf(sos:products:joc_cockpit:schedule:edit),
    "addSubstitute": valueOf(sos:products:joc_cockpit:schedule:add_substitute)
  },
  "Lock": {
    "view": {
      "status": valueOf(sos:products:joc_cockpit:lock:view:status),
      "configuration": valueOf(sos:products:joc_cockpit:lock:view:configuration)
    }
  },
  "Event": {
    "view": {
      "status": valueOf(sos:products:joc_cockpit:event:view:status)
    },
    "delete": valueOf(sos:products:joc_cockpit:event:delete)
  },
  "EventAction": {
    "view": {
      "status": valueOf(sos:products:joc_cockpit:event_action:view:status)
    },
    "createEventsManually": valueOf(sos:products:joc_cockpit:event_action:create_event_manually)
  },
  "HolidayCalendar": {
    "view": {
      "status": valueOf(sos:products:joc_cockpit:holiday_calendar:view:status)
    }
  },
  "MaintenanceWindow": {
    "view": {
      "status": valueOf(sos:products:joc_cockpit:maintenance_window:view:status)
    },
    "enableDisableMaintenanceWindow": valueOf(sos:products:joc_cockpit:maintenance_window:enable_disable_mainenance_window)
  },
  "SOSPermissionRoles": {
    "SOSPermissionRole": [
      "application_manager"
    ]
  }
}

 

 

 

  • No labels