|
|
(101 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | {{DISPLAYTITLE:I2Rest Basic Setup}}
| + | This section describes configuration options of i2Rest Server. [[I2Rest_quick_config|Basic configuration]] allows only demo server functionality, and must be extended to supply full functional server instancence. Combining examples bellow you can achieve server functionality that suits your requirements. <br> |
− | Take a look on how the minimal i2Rest configuration might look like.
| |
− | <pre>
| |
− | {
| |
− | "gates":
| |
− | {
| |
− | "main" : {"url":"http://i2rest.com:22088"},
| |
− | "management" : {"url":"http://192.168.0.233:8080"},
| |
− | "session" : {"url":"http://192.168.0.233:8888/session_gate"}
| |
− | },
| |
− | "session_systems":
| |
− | [
| |
− | {"name": "*LOCAL", "submit":"SBMJOB JOB(I2RESTS) USER(${user}) CMD(CALL JPCML/I2REST PARM('-session' '-url' '${surl}' '-uid' '${uid}'
| |
− | '-user' '${user}' '-init' 'ADDLIBLE JPCML' '-dcm_client_id' 'MYCLIENT')) INLLIBL(KAPBASELIB QGPL)"},
| |
− | {"name": "*ANONYMOUS", "submit":"SBMJOB JOB(I2RESTA) USER(${user}) CMD(CALL JPCML/I2REST PARM('-session' '-url' '${surl}' '-uid' '${uid}'
| |
− | '-user' '${user}' '-init' 'ADDLIBLE JPCML' '-dcm_client_id' 'MYCLIENT')) INLLIBL(KAPBASELIB QGPL)"},
| |
− | ],
| |
− | }
| |
− | </pre>
| |
− | According to [[I2Rest_Config|I2Rest Configuration Object description]] just two i2Rest Configuration Object fields are mandotary: [[gates object]] and [[i2Rest_Gates|main, manager and session gates object]]. With only this two configured fields we already can run a server instance, but still can't get much use of it. Most valuable i2Rest Server applications - the [[I2Rest_API#run_program_API|run_program API]] and the [[I2Rest_API#run_command_API|run_command API]] requires some more stuff:
| |
| | | |
− | ::run_command API requires [[OAuth2_object|Oauth2 object]];
| + | * [[Using secured connections]] |
− | ::run_program API generally requires [[Pcml_object|PCML object]] to be set up, but Oauth2 object also is mandotary for programs which has "valid_in_anonymous":false flag in PCML.
| + | * [[i2Rest Gate URL definition using Unix socket|Serving incoming connections using Unix sockets]] |
− | So the setting that allows to call IBM i program as a web service might look like as follows:
| + | * [[I2Rest_with_syslog|Using syslog with i2Rest Server]] |
− | <pre>
| + | * [[Configuring OAuth2 authorization]] |
− | "pcmls":
| + | * [[Run_command_Api_config|How to allow calls to run_command API]] |
− | [
| + | * [[Management_API_config|How to allow calls to management API]] |
− | {"pcml_mount":"echo", "pcml_file":"pcml/echo.pcml", "valid_in_anonymous":true},
| + | * [[Remote_API_call_config|How to call API located on remote IBM i server]] |
− | ],
| + | * [[I2Rest_Basic_PowerApps_Connector|How to create Microsoft Power Apps custom adapter to i2Rest Server]] |
− | </pre>
| + | i2Rest server should be [[I2Rest_Start|restarted]] to aplly your new configuration *.json. |
− | Not too dificult, isn't it? Much more complex Oauth2 object example below:
| |
− | <pre>
| |
− | | |
− | "OAuth2":
| |
− | {
| |
− | "scopes": {"run_program" : {"description":"Run *PGM and *SRVPGM"},
| |
− | "run_command" : {"description":"Run CL command"},
| |
− | "system_BTC7" : {"description":"Execute API on BTC7"},
| |
− | "management_functions" : {"description":"Invoke i2Rest manager APIs"}},
| |
− | "clients":
| |
− | {
| |
− | "OAUTH21":{"redirect_uri":"http://api.i2rest.com:22088/oauth2/redirect",
| |
− | "description":"Test client",
| |
− | "valid_scopes":["run_program", "run_command", "management_functions", "system_BTC7"],
| |
− | "valid_grant_types":["authorization_code", "urn:ietf:params:oauth:grant-type:device_code", "refresh_token", "client_credentials"]}
| |
− | },
| |
− | "users":
| |
− | {
| |
− | "BTAB":{"description":"Alexei Baranov", "valid_clients":{"OAUTH21":{"scopes":["run_program", "run_command", "management_functions", "system_BTC7"]}}},
| |
− | "BTPL":{"description":"Pavel Lobko", "valid_clients":{"OAUTH21":{"scopes":["run_program", "run_command", "management_functions", "system_BTC7"]}}}
| |
− | },
| |
− | "tokens": {"type":"token"},"refresh_tokens":{"type":"refresh_token"},"codes":{"type":"code"},"device_codes":{"type":"user_code"},
| |
− | | |
− | "login_page" : "/pages/Login/index.html",
| |
− | "decision_page" : "/pages/user_decide.html",
| |
− | "bad_auth_page" : "/pages/bad_auth.html",
| |
− | "enter_code_page" : "/pages/enter_code.html",
| |
− | "device_connected_page" : "/pages/device_connected.html"
| |
− | }
| |
− | | |
− | | |
− | </pre>
| |