-
Notifications
You must be signed in to change notification settings - Fork 1
/
edge-lti-courses.raml
153 lines (150 loc) · 6.34 KB
/
edge-lti-courses.raml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#%RAML 1.0
title: Edge API - Course Reserves LTI Tool
baseUri: https://github.com/folio-org/edge-lti-courses
version: v1
documentation:
- title: Edge API - Course Reserves LTI Tool
content: Edge API to allow LTI platforms to fetch course reserves
/lti-courses:
/.well-known:
/jwks.json:
displayName: The Tool's JWKS
get:
description: Return the JWKS the tool uses to sign its JWTs
/oidc-login-init:
/{apiKeyPath}:
displayName: A third-party OIDC login initiation endpoint
description: https://openid.net/specs/openid-connect-core-1_0.html#ThirdPartyInitiatedLogin
get:
description: Begin a third-party OIDC login initiation flow
queryParameters:
iss:
description: The Issuer string of the Platform. This corresponds to a JWT's iss.
example: https://my-lms.edu/
required: true
type: string
login_hint:
description: Unused by this tool but required by the LTI Advantage spec.
required: true
type: string
target_link_uri:
description: The actual end-point that should be executed at the end of the OpenID Connect authentication flow.
example: https://folio-edge-apis.edu/lti-courses/launches/myApiKey
required: true
type: string
responses:
302:
description: "Success, redirecting to the LTI Platform's OAuth Authorization URL"
400:
description: "Bad request, missing some of the required parameters"
body:
text/plain:
example: "Missing required parameter: target_link_uri"
/launches:
/{apiKeyPath}:
displayName: Handler for LTI Launch requests https://www.imsglobal.org/spec/lti/v1p3/#lti-launch
description: This endpoint uses the LTI context claim's "title" property to lookup the course against the "Course code" in the Folio Courses app
post:
body:
application/x-www-form-urlencoded:
properties:
id_token:
description: A JWT containing the LTI Resource Link Launch Request message, https://www.imsglobal.org/spec/lti/v1p3/#resource-link-launch-request-message
example: "eyJr[...]sjFs.G9iY[...]0aS1.HVyb[...]cmdld"
required: true
type: string
state:
description: The `state` that was passed to the OAuth2 authorization URL by the Tool in response to the OIDC Login Initiation
example: "vmeekvqcbvvxmbjvarhe"
required: true
type: string
responses:
200:
description: "Success, will render the course reserves or a 'none found' message"
body:
text/html:
400:
description: "Bad request, some data is missing or invalid"
body:
text/plain:
example: "Issuer not provided"
500:
description: "Some internal server error, including ones thrown by Folio"
body:
text/plain:
example: "Folio had an internal server error"
/externalIdLaunches:
/{apiKeyPath}:
displayName: Handler for LTI Launch requests https://www.imsglobal.org/spec/lti/v1p3/#lti-launch
description: This endpoint uses the LTI context claim's "title" property to lookup the course against the "External ID" in the Folio Courses app
post:
body:
application/x-www-form-urlencoded:
properties:
id_token:
description: A JWT containing the LTI Resource Link Launch Request message, https://www.imsglobal.org/spec/lti/v1p3/#resource-link-launch-request-message
example: "eyJr[...]sjFs.G9iY[...]0aS1.HVyb[...]cmdld"
required: true
type: string
state:
description: The `state` that was passed to the OAuth2 authorization URL by the Tool in response to the OIDC Login Initiation
example: "vmeekvqcbvvxmbjvarhe"
required: true
type: string
responses:
200:
description: "Success, will render the course reserves or a 'none found' message"
body:
text/html:
400:
description: "Bad request, some data is missing or invalid"
body:
text/plain:
example: "Issuer not provided"
500:
description: "Some internal server error, including ones thrown by Folio"
body:
text/plain:
example: "Folio had an internal server error"
/registrarIdLaunches:
/{apiKeyPath}:
displayName: Handler for LTI Launch requests https://www.imsglobal.org/spec/lti/v1p3/#lti-launch
description: This endpoint uses the LTI context claim's "title" property to lookup the course against the "Registrar ID" in the Folio Courses app
post:
body:
application/x-www-form-urlencoded:
properties:
id_token:
description: A JWT containing the LTI Resource Link Launch Request message, https://www.imsglobal.org/spec/lti/v1p3/#resource-link-launch-request-message
example: "eyJr[...]sjFs.G9iY[...]0aS1.HVyb[...]cmdld"
required: true
type: string
state:
description: The `state` that was passed to the OAuth2 authorization URL by the Tool in response to the OIDC Login Initiation
example: "vmeekvqcbvvxmbjvarhe"
required: true
type: string
responses:
200:
description: "Success, will render the course reserves or a 'none found' message"
body:
text/html:
400:
description: "Bad request, some data is missing or invalid"
body:
text/plain:
example: "Issuer not provided"
500:
description: "Some internal server error, including ones thrown by Folio"
body:
text/plain:
example: "Folio had an internal server error"
/admin/health:
displayName: Health Check
get:
description: Health Check
responses:
200:
description: "Success"
body:
text/plain: