manifests.yaml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. ---
  2. swagger: '2.0'
  3. info:
  4. version: 1.0.0
  5. title: GeoServer Manifests API
  6. description: GeoServer provides a REST service to expose a listing of all loaded JARs and resources on the running instance. This is useful for bug reports and to keep track of extensions deployed into the application.
  7. contact:
  8. name: GeoServer
  9. email: 'geoserver-users@osgeo.org'
  10. url: 'https://geoserver.org/comm/'
  11. host: localhost:8080
  12. basePath: /geoserver/rest
  13. schemes:
  14. - http
  15. - https
  16. securityDefinitions:
  17. basicAuth:
  18. type: basic
  19. description: HTTP Basic Authentication. Works over `HTTP` and `HTTPS`
  20. security:
  21. - basicAuth: []
  22. paths:
  23. /about/manifest:
  24. get:
  25. operationId: getManifest
  26. tags:
  27. - "Manifests"
  28. description: |
  29. This endpoint retrieves details on all loaded JARs. All the GeoServer manifest JARs are marked with the property GeoServerModule and classified by type, so you can use filtering capabilities to search for a set of manifests using regular expressions (see the manifest parameter) or a type category (see the key and value parameter).
  30. The available types are core, extension, or community. To filter modules by a particular type, append a request with key=GeoServerModule&value={type}
  31. Use the "Accept:" header to specify format or append an extension to the endpoint (example "/about/manifest.xml" for XML).
  32. The model is very simple and is shared between the version and the resource requests to parse both requests. You can customize the results adding a properties file called manifest.properties into the root of the data directory.
  33. produces:
  34. - application/json
  35. - application/xml
  36. - text/html
  37. parameters:
  38. - name: manifest
  39. type: string
  40. in: query
  41. description: |
  42. The manifest parameter is used to filter over resulting resource (manifest) names attribute using Java regular expressions.
  43. required: false
  44. - name: key
  45. type: string
  46. in: query
  47. description: |
  48. Only return manifest entries with this key in their properties. It can be optionally combined with the value parameter.
  49. required: false
  50. - name: value
  51. type: string
  52. in: query
  53. description: |
  54. Only return manifest entries that have this value for the provided key parameter.
  55. required: false
  56. responses:
  57. 200:
  58. description: Returns the manifest
  59. schema:
  60. $ref: "#/definitions/Manifest"
  61. examples:
  62. application/json: |
  63. { "about": {
  64. "resource": [
  65. {
  66. "@name": "postgresql-9.4.1211",
  67. "Bundle-License": "http://www.postgresql.org/about/licence/",
  68. "Specification-Version": 4.2,
  69. "Bnd-LastModified": 1474207285788,
  70. "Bundle-Name": "PostgreSQL JDBC Driver JDBC42",
  71. "Bundle-Description": "Java JDBC 4.2 (JRE 8+) driver for PostgreSQL database",
  72. "Build-Jdk": "1.8.0_60",
  73. "Specification-Vendor": "Oracle Corporation",
  74. "Bundle-SymbolicName": "org.postgresql.jdbc42",
  75. "Bundle-Copyright": "Copyright (c) 2003-2015, PostgreSQL Global Development Group",
  76. "Built-By": "vladimirsitnikov",
  77. "Main-Class": "org.postgresql.util.PGJDBCMain",
  78. "Bundle-Activator": "org.postgresql.osgi.PGBundleActivator",
  79. "Require-Capability": "osgi.ee;filter:=\"(&(|(osgi.ee=J2SE)(osgi.ee=JavaSE))(version>=1.8))\"",
  80. "Tool": "Bnd-2.4.0.201411031534",
  81. "Implementation-Title": "PostgreSQL JDBC Driver - JDBC 4.2",
  82. "Implementation-Version": "9.4.1211",
  83. "Manifest-Version": 1,
  84. "Created-By": "Apache Maven Bundle Plugin",
  85. "Implementation-Vendor-Id": "org.postgresql",
  86. "Bundle-DocURL": "http://jdbc.postgresql.org/",
  87. "Bundle-Vendor": "PostgreSQL Global Development Group",
  88. "Implementation-Vendor": "PostgreSQL Global Development Group",
  89. "Bundle-ManifestVersion": 2,
  90. "Bundle-Version": "9.4.1211",
  91. "Specification-Title": "JDBC"
  92. },
  93. {
  94. "@name": "wicket-core-7.6.0",
  95. "Archiver-Version": "Plexus Archiver",
  96. "Bundle-License": "http://www.apache.org/licenses/LICENSE-2.0.txt",
  97. "Specification-Version": "7.6.0",
  98. "Bnd-LastModified": 1482777231886,
  99. "Bundle-Name": "Wicket Core",
  100. "DynamicImport-Package": "*",
  101. "Bundle-Description": "Wicket is a Java web application framework that takes simplicity, \t\tseparation of concerns and ease of development to a whole new level. \t\tWicket pages can be mocked up, previewed and later revised using \t\tstandard WYSIWYG HTML design tools. Dynamic content processing and \t\tform handling is all handled in Java code using a first-class \t\tcomponent model backed by POJO data beans that can easily be \t\tpersisted using your favorite technology.",
  102. "Build-Jdk": "1.8.0_111",
  103. "Specification-Vendor": "Apache Software Foundation",
  104. "Bundle-SymbolicName": "org.apache.wicket.core",
  105. "Built-By": "andrea",
  106. "Require-Capability": "osgi.ee;filter:=\"(&(osgi.ee=JavaSE)(version=1.7))\"",
  107. "Tool": "Bnd-2.3.0.201405100607",
  108. "Implementation-Title": "Wicket Core",
  109. "Implementation-Version": "7.6.0",
  110. "Manifest-Version": 1,
  111. "Created-By": "Apache Maven Bundle Plugin",
  112. "Implementation-Vendor-Id": "org.apache.wicket",
  113. "Bundle-DocURL": "http://apache.org",
  114. "Bundle-Vendor": "Apache Software Foundation",
  115. "Implementation-Vendor": "Apache Software Foundation",
  116. "Bundle-ManifestVersion": 2,
  117. "Bundle-Version": "7.6.0",
  118. "Specification-Title": "Wicket Core"
  119. }
  120. ]
  121. }
  122. }
  123. application/xml: |
  124. <about>
  125. <resource name="postgresql-9.4.1208">
  126. <Bundle-License>http://www.postgresql.org/about/licence/</Bundle-License>
  127. <Specification-Version>4.2</Specification-Version>
  128. <Bnd-LastModified>1455913825221</Bnd-LastModified>
  129. <Bundle-Name>PostgreSQL JDBC Driver JDBC42</Bundle-Name>
  130. <Bundle-Description>Java JDBC 4.2 (JRE 8+) driver for PostgreSQL database</Bundle-Description>
  131. <Build-Jdk>1.8.0_66</Build-Jdk>
  132. <Specification-Vendor>Oracle Corporation</Specification-Vendor>
  133. <Bundle-SymbolicName>org.postgresql.jdbc42</Bundle-SymbolicName>
  134. <Bundle-Copyright>Copyright (c) 2003-2015, PostgreSQL Global Development Group</Bundle-Copyright>
  135. <Built-By>vladimirsitnikov</Built-By>
  136. <Main-Class>org.postgresql.util.PGJDBCMain</Main-Class>
  137. <Bundle-Activator>org.postgresql.osgi.PGBundleActivator</Bundle-Activator>
  138. <Require-Capability>osgi.ee;filter:=&quot;(&amp;(|(osgi.ee=J2SE)(osgi.ee=JavaSE))(version&gt;=1.8))&quot;</Require-Capability>
  139. <Tool>Bnd-2.3.0.201405100607</Tool>
  140. <Implementation-Title>PostgreSQL JDBC Driver - JDBC 4.2</Implementation-Title>
  141. <Implementation-Version>9.4.1208</Implementation-Version>
  142. <Manifest-Version>1.0</Manifest-Version>
  143. <Created-By>Apache Maven Bundle Plugin</Created-By>
  144. <Implementation-Vendor-Id>org.postgresql</Implementation-Vendor-Id>
  145. <Bundle-DocURL>http://jdbc.postgresql.org/</Bundle-DocURL>
  146. <Bundle-Vendor>PostgreSQL Global Development Group</Bundle-Vendor>
  147. <Implementation-Vendor>PostgreSQL Global Development Group</Implementation-Vendor>
  148. <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
  149. <Bundle-Version>9.4.1208</Bundle-Version>
  150. <Specification-Title>JDBC</Specification-Title>
  151. </resource>
  152. <resource name="wicket-core-7.6.0">
  153. <Archiver-Version>Plexus Archiver</Archiver-Version>
  154. <Bundle-License>http://www.apache.org/licenses/LICENSE-2.0.txt</Bundle-License>
  155. <Specification-Version>7.6.0</Specification-Version>
  156. <Bnd-LastModified>1482777231886</Bnd-LastModified>
  157. <Bundle-Name>Wicket Core</Bundle-Name>
  158. <DynamicImport-Package>*</DynamicImport-Package>
  159. <Bundle-Description>Wicket is a Java web application framework that takes simplicity, separation of concerns and ease of development to a whole new level. Wicket pages can be mocked up, previewed and later revised using standard WYSIWYG HTML design tools. Dynamic content processing and form handling is all handled in Java code using a first-class component model backed by POJO data beans that can easily be persisted using your favorite technology.</Bundle-Description>
  160. <Build-Jdk>1.8.0_111</Build-Jdk>
  161. <Specification-Vendor>Apache Software Foundation</Specification-Vendor>
  162. <Bundle-SymbolicName>org.apache.wicket.core</Bundle-SymbolicName>
  163. <Built-By>andrea</Built-By>
  164. <Require-Capability>osgi.ee;filter:=&quot;(&amp;(osgi.ee=JavaSE)(version=1.7))&quot;</Require-Capability>
  165. <Tool>Bnd-2.3.0.201405100607</Tool>
  166. <Implementation-Title>Wicket Core</Implementation-Title>
  167. <Implementation-Version>7.6.0</Implementation-Version>
  168. <Manifest-Version>1.0</Manifest-Version>
  169. <Created-By>Apache Maven Bundle Plugin</Created-By>
  170. <Implementation-Vendor-Id>org.apache.wicket</Implementation-Vendor-Id>
  171. <Bundle-DocURL>http://apache.org</Bundle-DocURL>
  172. <Bundle-Vendor>Apache Software Foundation</Bundle-Vendor>
  173. <Implementation-Vendor>Apache Software Foundation</Implementation-Vendor>
  174. <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
  175. <Bundle-Version>7.6.0</Bundle-Version>
  176. <Specification-Title>Wicket Core</Specification-Title>
  177. </resource>
  178. </about>
  179. /about/version:
  180. get:
  181. description: |
  182. 'This endpoint shows only the details for the high-level components: GeoServer, GeoTools, and GeoWebCache.'
  183. Use the "Accept:" header to specify format or append an extension to the endpoint (example "/about/manifest.xml" for XML).'
  184. tags:
  185. - "Manifests"
  186. parameters:
  187. - name: manifest
  188. type: string
  189. in: query
  190. description: |
  191. The manifest parameter is used to filter over resulting resource (manifest) names attribute using Java regular expressions.
  192. required: false
  193. - name: key
  194. type: string
  195. in: query
  196. description: |
  197. Only return manifest entries with this key in their properties. It can be optionally combined with the value parameter.
  198. required: false
  199. - name: value
  200. type: string
  201. in: query
  202. description: |
  203. Only return manifest entries that have this value for the provided key parameter.
  204. required: false
  205. responses:
  206. 200:
  207. description: Returns the manifest
  208. examples:
  209. application/xml: |
  210. <about>
  211. <resource name="GeoTools">
  212. <Build-Timestamp>28-Mar-2017 15:44</Build-Timestamp>
  213. <Version>18-SNAPSHOT</Version>
  214. <Git-Revision>a96cee38ad6c8e87cb8ccdf75e1fb837bff35ef0</Git-Revision>
  215. </resource>
  216. <resource name="GeoWebCache">
  217. <Version>1.12-SNAPSHOT</Version>
  218. <Git-Revision>e9cdf1ecfcd97afc804ba43e04b2e1dedd4b5990/e9cdf1ecfcd97afc804ba43e04b2e1dedd4b5990</Git-Revision>
  219. </resource>
  220. </about>
  221. application/json: |
  222. { "about": {
  223. "resource": [
  224. {
  225. "@name": "GeoTools",
  226. "Build-Timestamp": "28-Mar-2017 15:44",
  227. "Version": "18-SNAPSHOT",
  228. "Git-Revision": "a96cee38ad6c8e87cb8ccdf75e1fb837bff35ef0"
  229. },
  230. {
  231. "@name": "GeoWebCache",
  232. "Version": "1.12-SNAPSHOT",
  233. "Git-Revision": "e9cdf1ecfcd97afc804ba43e04b2e1dedd4b5990/e9cdf1ecfcd97afc804ba43e04b2e1dedd4b5990"
  234. }
  235. ]
  236. }
  237. }
  238. /about/status:
  239. get:
  240. description: |
  241. This endpoint shows the status details of all installed and configured modules. Status details always include human readable name, and module name. Optional details include version, availability, status message, and links to documentation.
  242. Use the "Accept:" header to specify format or append an extension to the endpoint (example "/about/manifest.xml" for XML).
  243. tags:
  244. - "Manifests"
  245. parameters:
  246. - name: manifest
  247. type: string
  248. in: query
  249. description: |
  250. The manifest parameter is used to filter over resulting resource (manifest) names attribute using Java regular expressions.
  251. required: false
  252. - name: key
  253. type: string
  254. in: query
  255. description: |
  256. Only return manifest entries with this key in their properties. It can be optionally combined with the value parameter.
  257. required: false
  258. - name: value
  259. type: string
  260. in: query
  261. description: |
  262. Only return manifest entries that have this value for the provided key parameter.
  263. required: false
  264. responses:
  265. 200:
  266. description: Successfully retrieved status details.
  267. schema:
  268. $ref: "#/definitions/Status"
  269. examples:
  270. application/json: |
  271. {"about": {
  272. "status": [
  273. {
  274. "module": "gs-web-core",
  275. "name": "GeoServer Web UI Core",
  276. "isEnabled": true,
  277. "isAvailable": true
  278. },
  279. {
  280. "module": "gs-main",
  281. "name": "GeoServer Main",
  282. "isEnabled": true,
  283. "isAvailable": true
  284. },
  285. {
  286. "module": "jvm",
  287. "name": "Rendering Engine",
  288. "component": "java2d",
  289. "version": "1.8.0_121",
  290. "message": "Java 2D configured with DuctusRenderingEngine.\nProvider: OracleJDK\n",
  291. "isEnabled": true,
  292. "isAvailable": true
  293. },
  294. {
  295. "module": "system-properties",
  296. "name": "system-properties",
  297. "component": "system-properties",
  298. "message": "java.runtime.name=Java(TM) SE Runtime Environment\nsun.boot.library.path=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib\n",
  299. "isEnabled": true,
  300. "isAvailable": true
  301. },
  302. {
  303. "module": "system-environment",
  304. "name": "system-environment",
  305. "component": "system-environment",
  306. "message": "PATH=/usr/bin:/bin:/usr/sbin:/sbin\nSHELL=/usr/local/bin/bash\n",
  307. "isEnabled": true,
  308. "isAvailable": true
  309. },
  310. {
  311. "module": "gs-web-wms",
  312. "name": "GeoServer Web UI Web Map Service",
  313. "isEnabled": true,
  314. "isAvailable": true
  315. },
  316. {
  317. "module": "gs-wms",
  318. "name": "GeoServer Web Map Service",
  319. "isEnabled": true,
  320. "isAvailable": true
  321. }
  322. ]
  323. }
  324. }
  325. application/xml: |
  326. <about>
  327. <status>
  328. <module>gs-web-core</module>
  329. <name>GeoServer Web UI Core</name>
  330. <isEnabled>true</isEnabled>
  331. <isAvailable>true</isAvailable>
  332. </status>
  333. <status>
  334. <module>gs-main</module>
  335. <name>GeoServer Main</name>
  336. <isEnabled>true</isEnabled>
  337. <isAvailable>true</isAvailable>
  338. </status>
  339. <status>
  340. <module>jvm</module>
  341. <name>Rendering Engine</name>
  342. <component>java2d</component>
  343. <version>1.8.0_121</version>
  344. <message>Java 2D configured with DuctusRenderingEngine.
  345. Provider: OracleJDK
  346. </message>
  347. <isEnabled>true</isEnabled>
  348. <isAvailable>true</isAvailable>
  349. </status>
  350. <status>
  351. <module>system-properties</module>
  352. <name>system-properties</name>
  353. <component>system-properties</component>
  354. <message>java.runtime.name=Java(TM) SE Runtime Environment
  355. sun.boot.library.path=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib
  356. java.vm.version=25.121-b13
  357. java.util.prefs.syncInterval=5000000
  358. </message>
  359. <isEnabled>true</isEnabled>
  360. <isAvailable>true</isAvailable>
  361. </status>
  362. <status>
  363. <module>system-environment</module>
  364. <name>system-environment</name>
  365. <component>system-environment</component>
  366. <message>PATH=/usr/bin:/bin:/usr/sbin:/sbin
  367. SHELL=/usr/local/bin/bash
  368. </message>
  369. <isEnabled>true</isEnabled>
  370. <isAvailable>true</isAvailable>
  371. </status>
  372. <status>
  373. <module>gs-web-wms</module>
  374. <name>GeoServer Web UI Web Map Service</name>
  375. <isEnabled>true</isEnabled>
  376. <isAvailable>true</isAvailable>
  377. </status>
  378. <status>
  379. <module>gs-wms</module>
  380. <name>GeoServer Web Map Service</name>
  381. <isEnabled>true</isEnabled>
  382. <isAvailable>true</isAvailable>
  383. </status>
  384. </about>
  385. definitions:
  386. Manifest:
  387. type: object
  388. description: Details on loaded JARs.
  389. properties:
  390. about:
  391. type: object
  392. properties:
  393. resource:
  394. type: array
  395. description: Contains key/value pairs for the resource (the resource name is found in the name XML attribute and @name JSON property).
  396. items:
  397. type: object
  398. properties:
  399. '@name':
  400. type: string
  401. description: The name of the resource.
  402. additionalProperties: true
  403. Status:
  404. type: object
  405. description: Details of installed and configured modules. Status details always include human readable name, and module name. Optional details include version, availability, status message, and links to documentation.
  406. properties:
  407. about:
  408. type: object
  409. properties:
  410. status:
  411. type: array
  412. items:
  413. type: object
  414. properties:
  415. module:
  416. type: string
  417. description: |
  418. Module identifier based on artifact bundle. For example, gs-main, gs-oracle.
  419. name:
  420. type: string
  421. description: |
  422. Human readable name (from GeoServer documentation), or as defined in the extension pom.xml.
  423. component:
  424. type: string
  425. description: |
  426. Optional component identifier within module. For example, rendering-engine.
  427. version:
  428. type: string
  429. description: |
  430. Human readable version, ie. for geotools it would be 15-SNAPSHOT
  431. message:
  432. type: string
  433. description: |
  434. Optional status message such as what Java rendering engine is in use, or the library path if the module/driver is unavailable
  435. isEnabled:
  436. type: boolean
  437. description: |
  438. Returns whether the module is enabled in the current GeoServer configuration.
  439. isAvailable:
  440. type: boolean
  441. description: |
  442. Returns whether the module is available to GeoServer