NIFIREG-245 Refactoring REST API docs to generate asciidoc from swagger spec and convert to html
- Removing values from @ApiModel so all models use default name from Java class
- Standardizing all @ApiOperation annotations to have a short value + notes, fixing problem with two models named Bundle
This closes #164.
Signed-off-by: Kevin Doran <kdoran@apache.org>
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/RegistryConfiguration.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/RegistryConfiguration.java
index 6c16a68..4c50477 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/RegistryConfiguration.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/RegistryConfiguration.java
@@ -22,7 +22,7 @@
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
-@ApiModel(value = "registryConfiguration")
+@ApiModel
public class RegistryConfiguration {
private Boolean supportsManagedAuthorizer;
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/AccessPolicy.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/AccessPolicy.java
index 2cf51f0..7b911ec 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/AccessPolicy.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/AccessPolicy.java
@@ -27,7 +27,7 @@
/**
* Access policy details, including the users and user groups to which the policy applies.
*/
-@ApiModel("accessPolicy")
+@ApiModel
public class AccessPolicy extends AccessPolicySummary {
private Set<Tenant> users;
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/AccessPolicySummary.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/AccessPolicySummary.java
index 525eb19..909299e 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/AccessPolicySummary.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/AccessPolicySummary.java
@@ -23,7 +23,7 @@
/**
* Access policy summary of which actions ("read', "write", "delete") are allowable for a specified web resource.
*/
-@ApiModel("accessPolicySummary")
+@ApiModel
public class AccessPolicySummary {
private String identifier;
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/CurrentUser.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/CurrentUser.java
index 0d21c62..1bd4d4e 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/CurrentUser.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/CurrentUser.java
@@ -19,7 +19,7 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
-@ApiModel("currentUser")
+@ApiModel
public class CurrentUser {
private String identity;
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Permissions.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Permissions.java
index c76a41f..ca856b9 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Permissions.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Permissions.java
@@ -19,7 +19,7 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
-@ApiModel("permissions")
+@ApiModel
public class Permissions {
private boolean canRead = false;
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Resource.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Resource.java
index 7dd4493..d409bf9 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Resource.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Resource.java
@@ -19,7 +19,7 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
-@ApiModel("resource")
+@ApiModel
public class Resource {
private String identifier;
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/ResourcePermissions.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/ResourcePermissions.java
index 80e95c0..de55e26 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/ResourcePermissions.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/ResourcePermissions.java
@@ -19,7 +19,7 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
-@ApiModel("resourcePermissions")
+@ApiModel
public class ResourcePermissions {
private Permissions buckets = new Permissions();
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Tenant.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Tenant.java
index 19eee90..59d8c17 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Tenant.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/Tenant.java
@@ -26,7 +26,7 @@
/**
* A tenant of this NiFi Registry
*/
-@ApiModel("tenant")
+@ApiModel
public class Tenant {
private String identifier;
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/User.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/User.java
index 6a820ab..0a91f71 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/User.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/User.java
@@ -23,7 +23,7 @@
import java.util.HashSet;
import java.util.Set;
-@ApiModel("user")
+@ApiModel
public class User extends Tenant {
private Set<Tenant> userGroups;
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/UserGroup.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/UserGroup.java
index 570502d..39fca36 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/UserGroup.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/authorization/UserGroup.java
@@ -26,7 +26,7 @@
/**
* A user group, used to apply a single set of authorization policies to a group of users.
*/
-@ApiModel("userGroup")
+@ApiModel
public class UserGroup extends Tenant {
private Set<Tenant> users;
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/bucket/Bucket.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/bucket/Bucket.java
index a5f9f51..fcf27ca 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/bucket/Bucket.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/bucket/Bucket.java
@@ -27,7 +27,7 @@
import java.util.Objects;
@XmlRootElement
-@ApiModel(value = "bucket")
+@ApiModel
public class Bucket extends LinkableEntity {
@NotBlank
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/bucket/BucketItem.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/bucket/BucketItem.java
index ce9faa7..98a873d 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/bucket/BucketItem.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/bucket/BucketItem.java
@@ -26,7 +26,7 @@
import javax.validation.constraints.NotNull;
import java.util.Objects;
-@ApiModel("bucketItem")
+@ApiModel
public abstract class BucketItem extends LinkableEntity {
@NotBlank
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/extension/bundle/Bundle.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/extension/bundle/Bundle.java
index 63216fa..0a1cd4d 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/extension/bundle/Bundle.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/extension/bundle/Bundle.java
@@ -32,8 +32,11 @@
* Each bundle may then have one or more versions associated with it by creating an {@link BundleVersion}.
*
* The {@link BundleVersion} represents the actually binary bundle which may contain one or more extensions.
+ *
+ * Note: The @ApiModel annotation needs a value specified because there is another class called Bundle in a different
+ * package for flows, and the model names must be unique since they won't carry the Java package structure forward.
*/
-@ApiModel
+@ApiModel("ExtensionBundle")
@XmlRootElement
public class Bundle extends BucketItem {
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlow.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlow.java
index 6ece46a..5c5a43a 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlow.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlow.java
@@ -34,7 +34,7 @@
* @see VersionedFlowSnapshot
*/
@XmlRootElement
-@ApiModel(value = "versionedFlow")
+@ApiModel
public class VersionedFlow extends BucketItem {
@Min(0)
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlowSnapshot.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlowSnapshot.java
index bc82397..76aceab 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlowSnapshot.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlowSnapshot.java
@@ -35,7 +35,7 @@
* version of the flow, the timestamp when it was saved, the contents of the flow, etc.
* </p>
*/
-@ApiModel(value = "versionedFlowSnapshot")
+@ApiModel
@XmlRootElement
public class VersionedFlowSnapshot {
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlowSnapshotMetadata.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlowSnapshotMetadata.java
index 2007279..dc58cf4 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlowSnapshotMetadata.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/flow/VersionedFlowSnapshotMetadata.java
@@ -28,7 +28,7 @@
* The metadata information about a VersionedFlowSnapshot. This class implements Comparable in order
* to sort based on the snapshot version in ascending order.
*/
-@ApiModel(value = "versionedFlowSnapshotMetadata")
+@ApiModel
public class VersionedFlowSnapshotMetadata extends LinkableEntity implements Comparable<VersionedFlowSnapshotMetadata> {
@NotBlank
diff --git a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/link/LinkableEntity.java b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/link/LinkableEntity.java
index 896e9d3..0d09066 100644
--- a/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/link/LinkableEntity.java
+++ b/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/link/LinkableEntity.java
@@ -26,7 +26,7 @@
/**
* Base classes for domain objects that want to provide a hypermedia link.
*/
-@ApiModel("linkableEntity")
+@ApiModel
public abstract class LinkableEntity {
private Link link;
diff --git a/nifi-registry-core/nifi-registry-docs/pom.xml b/nifi-registry-core/nifi-registry-docs/pom.xml
index ff3240f..a6c5c6d 100644
--- a/nifi-registry-core/nifi-registry-docs/pom.xml
+++ b/nifi-registry-core/nifi-registry-docs/pom.xml
@@ -22,6 +22,16 @@
</parent>
<packaging>pom</packaging>
<artifactId>nifi-registry-docs</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.nifi.registry</groupId>
+ <artifactId>nifi-registry-web-api</artifactId>
+ <version>0.4.0-SNAPSHOT</version>
+ <type>war</type>
+ </dependency>
+ </dependencies>
+
<build>
<plugins>
<plugin>
@@ -60,6 +70,7 @@
</executions>
<configuration>
<sourceDirectory>${project.build.directory}/asciidoc</sourceDirectory>
+ <outputDirectory>${project.build.directory}/generated-docs</outputDirectory>
<backend>html5</backend>
<attributes>
<imagesdir>./images</imagesdir>
@@ -74,6 +85,58 @@
</attributes>
</configuration>
</plugin>
+ <!-- Unpack rest-api.html that was generated from nifi-registry-web-api and place it into a temp folder in the target dir -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>3.1.1</version>
+ <executions>
+ <execution>
+ <id>unpack-rest-api-doc</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <configuration>
+ <includeGroupIds>org.apache.nifi.registry</includeGroupIds>
+ <includeArtifactIds>nifi-registry-web-api</includeArtifactIds>
+ <outputDirectory>${project.build.directory}/nifi-registry-web-api/</outputDirectory>
+ <includes>**/rest-api.html</includes>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>false</overWriteSnapshots>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- Copy rest-api.html from the tmp dir to the generated-docs dir where the other html docs are, this is done
+ in two steps to eliminate the nested path that was created in the temp dir when running unpack-dependencies
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.8</version>
+ <executions>
+ <execution>
+ <id>copy-rest-api-doc</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target>
+ <sequential>
+ <echo>Copy unpacked rest-api.html to generated-docs dir</echo>
+ <copy todir="${project.build.directory}/generated-docs">
+ <fileset dir="${project.build.directory}/nifi-registry-web-api/docs/rest-api/">
+ <include name="**" />
+ </fileset>
+ </copy>
+ </sequential>
+ </target>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
<!-- This plugin is used to insert the Apache License into the output HMTL because
AsciiDoc doesn't appear to provide a mechanism for doing this. -->
<plugin>
diff --git a/nifi-registry-core/nifi-registry-web-api/pom.xml b/nifi-registry-core/nifi-registry-web-api/pom.xml
index 6e9fa10..7451f32 100644
--- a/nifi-registry-core/nifi-registry-web-api/pom.xml
+++ b/nifi-registry-core/nifi-registry-web-api/pom.xml
@@ -25,6 +25,14 @@
<version>0.4.0-SNAPSHOT</version>
<packaging>war</packaging>
+ <properties>
+ <swagger.source.dir>${project.basedir}/src/main/resources/swagger</swagger.source.dir>
+ <swagger.generated.dir>${project.build.directory}/swagger</swagger.generated.dir>
+ <asciidoc.source.dir>${project.basedir}/src/main/asciidoc</asciidoc.source.dir>
+ <asciidoc.generated.dir>${project.build.directory}/asciidoc</asciidoc.generated.dir>
+ <docs.dir>${project.build.directory}/${project.artifactId}-${project.version}/docs/</docs.dir>
+ </properties>
+
<build>
<resources>
<resource>
@@ -65,7 +73,7 @@
</schemes>
<basePath>/nifi-registry-api</basePath>
<info>
- <title>NiFi Registry REST API</title>
+ <title>Apache NiFi Registry REST API</title>
<version>${project.version}</version>
<description>
The REST API provides an interface to a registry with operations for saving, versioning, reading NiFi flows and components.
@@ -79,17 +87,16 @@
<url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
<name>Apache 2.0 License</name>
</license>
+ <termsOfService>As described in the license</termsOfService>
</info>
<securityDefinitions>
<securityDefinition>
- <jsonPath>${project.basedir}/src/main/resources/swagger/security-definitions.json</jsonPath>
+ <jsonPath>${swagger.source.dir}/security-definitions.json</jsonPath>
</securityDefinition>
</securityDefinitions>
<templatePath>classpath:/templates/index.html.hbs</templatePath>
- <outputPath>
- ${project.build.directory}/${project.artifactId}-${project.version}/docs/rest-api/index.html
- </outputPath>
- <swaggerDirectory>${project.build.directory}/swagger</swaggerDirectory>
+ <outputPath>${docs.dir}/rest-api/index.html</outputPath>
+ <swaggerDirectory>${swagger.generated.dir}</swaggerDirectory>
</apiSource>
</apiSources>
</configuration>
@@ -106,7 +113,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${project.build.directory}/${project.artifactId}-${project.version}/docs/rest-api/images</outputDirectory>
+ <outputDirectory>${docs.dir}/rest-api/images</outputDirectory>
<resources>
<resource>
<directory>src/main/resources/images</directory>
@@ -131,12 +138,9 @@
<goal>wget</goal>
</goals>
<configuration>
- <url>
- https://github.com/swagger-api/swagger-ui/archive/v${swagger.ui.version}.tar.gz
- </url>
+ <url>https://github.com/swagger-api/swagger-ui/archive/v${swagger.ui.version}.tar.gz</url>
<unpack>true</unpack>
- <outputDirectory>${project.build.directory}
- </outputDirectory>
+ <outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
@@ -184,6 +188,65 @@
</execution>
</executions>
</plugin>
+ <!-- Generates asciidoc files from swagger.json -->
+ <plugin>
+ <groupId>io.github.swagger2markup</groupId>
+ <artifactId>swagger2markup-maven-plugin</artifactId>
+ <version>1.3.3</version>
+ <executions>
+ <execution>
+ <phase>compile</phase>
+ <goals>
+ <goal>convertSwagger2markup</goal>
+ </goals>
+ <configuration>
+ <swaggerInput>${swagger.generated.dir}/swagger.json</swaggerInput>
+ <outputDir>${asciidoc.generated.dir}</outputDir>
+ <config>
+ <swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
+ <swagger2markup.pathsGroupedBy>TAGS</swagger2markup.pathsGroupedBy>
+ <swagger2markup.generatedExamplesEnabled>true</swagger2markup.generatedExamplesEnabled>
+ </config>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- Generates rest-api.html from rest-api.adoc and places it in docs dir within WAR -->
+ <plugin>
+ <groupId>org.asciidoctor</groupId>
+ <artifactId>asciidoctor-maven-plugin</artifactId>
+ <version>1.5.7.1</version>
+ <configuration>
+ <sourceDirectory>${asciidoc.source.dir}</sourceDirectory>
+ <sourceDocumentName>rest-api.adoc</sourceDocumentName>
+ <attributes>
+ <doctype>article</doctype>
+ <toc></toc>
+ <toclevels>3</toclevels>
+ <numbered></numbered>
+ <hardbreaks></hardbreaks>
+ <sectlinks></sectlinks>
+ <sectanchors></sectanchors>
+ <revnumber>${project.version}</revnumber>
+ <organization>Apache NiFi</organization>
+ <generated>${asciidoc.generated.dir}</generated>
+ </attributes>
+ </configuration>
+ <executions>
+ <execution>
+ <id>output-html</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>process-asciidoc</goal>
+ </goals>
+ <configuration>
+ <backend>html5</backend>
+ <outputDirectory>${docs.dir}/rest-api</outputDirectory>
+ <outputFile>rest-api.html</outputFile>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/asciidoc/rest-api.adoc b/nifi-registry-core/nifi-registry-web-api/src/main/asciidoc/rest-api.adoc
new file mode 100644
index 0000000..4430d83
--- /dev/null
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/asciidoc/rest-api.adoc
@@ -0,0 +1,20 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+include::{generated}/overview.adoc[]
+include::{generated}/security.adoc[]
+include::{generated}/paths.adoc[]
+include::{generated}/definitions.adoc[]
\ No newline at end of file
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessPolicyResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessPolicyResource.java
index 713b369..bfbeabf 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessPolicyResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessPolicyResource.java
@@ -91,7 +91,7 @@
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Creates an access policy",
+ value = "Create access policy",
response = AccessPolicy.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -138,7 +138,7 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets all access policies",
+ value = "Get all access policies",
response = AccessPolicy.class,
responseContainer = "List",
extensions = {
@@ -175,7 +175,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("{id}")
@ApiOperation(
- value = "Gets an access policy",
+ value = "Get access policy",
response = AccessPolicy.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -218,7 +218,8 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("{action}/{resource: .+}")
@ApiOperation(
- value = "Gets an access policy for the specified action and resource",
+ value = "Get access policy for resource",
+ notes = "Gets an access policy for the specified action and resource",
response = AccessPolicy.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -268,7 +269,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("{id}")
@ApiOperation(
- value = "Updates a access policy",
+ value = "Update access policy",
response = AccessPolicy.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -321,7 +322,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("{id}")
@ApiOperation(
- value = "Deletes an access policy",
+ value = "Delete access policy",
response = AccessPolicy.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -361,7 +362,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the available resources that support access/authorization policies",
+ value = "Get available resources",
+ notes = "Gets the available resources that support access/authorization policies",
response = Resource.class,
responseContainer = "List",
extensions = {
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessResource.java
index d310d0c..e45aad4 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessResource.java
@@ -108,7 +108,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Returns the current client's authenticated identity and permissions to top-level resources",
+ value = "Get access status",
+ notes = "Returns the current client's authenticated identity and permissions to top-level resources",
response = CurrentUser.class,
authorizations = {@Authorization(value = "Authorization")}
)
@@ -139,8 +140,9 @@
@Produces(MediaType.TEXT_PLAIN)
@Path("/token")
@ApiOperation(
- value = "Creates a token for accessing the REST API via auto-detected method of verifying client identity claim credentials",
- notes = "The token returned is formatted as a JSON Web Token (JWT). The token is base64 encoded and comprised of three parts. The header, " +
+ value = "Create token trying all providers",
+ notes = "Creates a token for accessing the REST API via auto-detected method of verifying client identity claim credentials. " +
+ "The token returned is formatted as a JSON Web Token (JWT). The token is base64 encoded and comprised of three parts. The header, " +
"the body, and the signature. The expiration of the token is a contained within the body. The token can be used in the Authorization header " +
"in the format 'Authorization: Bearer <token>'.",
response = String.class
@@ -204,8 +206,8 @@
@Produces(MediaType.TEXT_PLAIN)
@Path("/token/login")
@ApiOperation(
- value = "Creates a token for accessing the REST API via username/password",
- notes = "The user credentials must be passed in standard HTTP Basic Auth format. " +
+ value = "Create token using basic auth",
+ notes = "Creates a token for accessing the REST API via username/password. The user credentials must be passed in standard HTTP Basic Auth format. " +
"That is: 'Authorization: Basic <credentials>', where <credentials> is the base64 encoded value of '<username>:<password>'. " +
"The token returned is formatted as a JSON Web Token (JWT). The token is base64 encoded and comprised of three parts. The header, " +
"the body, and the signature. The expiration of the token is a contained within the body. The token can be used in the Authorization header " +
@@ -262,8 +264,9 @@
@Produces(MediaType.TEXT_PLAIN)
@Path("/token/kerberos")
@ApiOperation(
- value = "Creates a token for accessing the REST API via Kerberos Service Tickets or SPNEGO Tokens (which includes Kerberos Service Tickets)",
- notes = "The token returned is formatted as a JSON Web Token (JWT). The token is base64 encoded and comprised of three parts. The header, " +
+ value = "Create token using kerberos",
+ notes = "Creates a token for accessing the REST API via Kerberos Service Tickets or SPNEGO Tokens (which includes Kerberos Service Tickets). " +
+ "The token returned is formatted as a JSON Web Token (JWT). The token is base64 encoded and comprised of three parts. The header, " +
"the body, and the signature. The expiration of the token is a contained within the body. The token can be used in the Authorization header " +
"in the format 'Authorization: Bearer <token>'.",
response = String.class
@@ -317,8 +320,9 @@
@Produces(MediaType.TEXT_PLAIN)
@Path("/token/identity-provider")
@ApiOperation(
- value = "Creates a token for accessing the REST API via a custom identity provider.",
- notes = "The user credentials must be passed in a format understood by the custom identity provider, e.g., a third-party auth token in an HTTP header. " +
+ value = "Create token using identity provider",
+ notes = "Creates a token for accessing the REST API via a custom identity provider. " +
+ "The user credentials must be passed in a format understood by the custom identity provider, e.g., a third-party auth token in an HTTP header. " +
"The exact format of the user credentials expected by the custom identity provider can be discovered by 'GET /access/token/identity-provider/usage'. " +
"The token returned is formatted as a JSON Web Token (JWT). The token is base64 encoded and comprised of three parts. The header, " +
"the body, and the signature. The expiration of the token is a contained within the body. The token can be used in the Authorization header " +
@@ -374,7 +378,8 @@
@Produces(MediaType.TEXT_PLAIN)
@Path("/token/identity-provider/usage")
@ApiOperation(
- value = "Provides a description of how the currently configured identity provider expects credentials to be passed to POST /access/token/identity-provider",
+ value = "Get identity provider usage",
+ notes = "Provides a description of how the currently configured identity provider expects credentials to be passed to POST /access/token/identity-provider",
response = String.class
)
@ApiResponses({
@@ -416,8 +421,9 @@
@Produces(MediaType.TEXT_PLAIN)
@Path("/token/identity-provider/test")
@ApiOperation(
- value = "Tests the format of the credentials against this identity provider without preforming authentication on the credentials to validate them.",
- notes = "The user credentials should be passed in a format understood by the custom identity provider as defined by 'GET /access/token/identity-provider/usage'.",
+ value = "Test identity provider",
+ notes = "Tests the format of the credentials against this identity provider without preforming authentication on the credentials to validate them. " +
+ "The user credentials should be passed in a format understood by the custom identity provider as defined by 'GET /access/token/identity-provider/usage'.",
response = String.class
)
@ApiResponses({
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ApplicationResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ApplicationResource.java
index 22c5211..adabbfc 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ApplicationResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ApplicationResource.java
@@ -45,7 +45,7 @@
public static final String FORWARDED_PORT_HTTP_HEADER = "X-Forwarded-Port";
public static final String FORWARDED_CONTEXT_HTTP_HEADER = "X-Forwarded-Context";
- protected static final String NON_GUARANTEED_ENDPOINT = "Note: This endpoint is subject to change as NiFi Registry and its REST API evolve.";
+ public static final String NON_GUARANTEED_ENDPOINT = "\n\nNOTE: This endpoint is subject to change as NiFi Registry and its REST API evolve.";
private static final Logger logger = LoggerFactory.getLogger(ApplicationResource.class);
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketBundleResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketBundleResource.java
index cb5ac6e..abfeddd 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketBundleResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketBundleResource.java
@@ -57,8 +57,8 @@
@Component
@Path("/buckets/{bucketId}/bundles")
@Api(
- value = "bucket_bundles",
- description = "Create extension bundles scoped to an existing bucket in the registry.",
+ value = "bucket bundles",
+ description = "Create extension bundles scoped to an existing bucket in the registry. ",
authorizations = { @Authorization("Authorization") }
)
public class BucketBundleResource extends AuthorizableApplicationResource {
@@ -87,15 +87,16 @@
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Creates a version of an extension bundle by uploading a binary artifact",
- notes = "If an extension bundle already exists in the given bucket with the same group id and artifact id " +
+ value = "Create extension bundle version",
+ notes = "Creates a version of an extension bundle by uploading a binary artifact. " +
+ "If an extension bundle already exists in the given bucket with the same group id and artifact id " +
"as that of the bundle being uploaded, then it will be added as a new version to the existing bundle. " +
"If an extension bundle does not already exist in the given bucket with the same group id and artifact id, " +
"then a new extension bundle will be created and this version will be added to the new bundle. " +
"Client's may optionally supply a SHA-256 in hex format through the multi-part form field 'sha256'. " +
"If supplied, then this value will be compared against the SHA-256 computed by the server, and the bundle " +
"will be rejected if the values do not match. If not supplied, the bundle will be accepted, but will be marked " +
- "to indicate that the client did not supply a SHA-256 during creation.",
+ "to indicate that the client did not supply a SHA-256 during creation. " + NON_GUARANTEED_ENDPOINT,
response = BundleVersion.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -146,7 +147,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets all extension bundles in the given bucket",
+ value = "Get extension bundles by bucket",
+ notes = NON_GUARANTEED_ENDPOINT,
response = Bundle.class,
responseContainer = "List",
extensions = {
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketFlowResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketFlowResource.java
index ccf41d9..ecf1b7a 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketFlowResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketFlowResource.java
@@ -61,7 +61,7 @@
@Component
@Path("/buckets/{bucketId}/flows")
@Api(
- value = "bucket_flows",
+ value = "bucket flows",
description = "Create flows scoped to an existing bucket in the registry.",
authorizations = { @Authorization("Authorization") }
)
@@ -90,8 +90,8 @@
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Creates a flow",
- notes = "The flow id is created by the server and populated in the returned entity.",
+ value = "Create flow",
+ notes = "Creates a flow in the given bucket. The flow id is created by the server and populated in the returned entity.",
response = VersionedFlow.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -127,7 +127,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets all flows in the given bucket",
+ value = "Get bucket flows",
+ notes = "Retrieves all flows in the given bucket.",
response = VersionedFlow.class,
responseContainer = "List",
extensions = {
@@ -161,7 +162,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets a flow",
+ value = "Get bucket flow",
+ notes = "Retrieves the flow with the given id in the given bucket.",
response = VersionedFlow.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -197,7 +199,8 @@
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Updates a flow",
+ value = "Update bucket flow",
+ notes = "Updates the flow with the given id in the given bucket.",
response = VersionedFlow.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -240,7 +243,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Deletes a flow, including all saved versions of that flow.",
+ value = "Delete bucket flow",
+ notes = "Deletes a flow, including all saved versions of that flow.",
response = VersionedFlow.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -272,9 +276,9 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Creates the next version of a flow",
- notes = "The version number of the object being created must be the next available version integer. " +
- "Flow versions are immutable after they are created.",
+ value = "Create flow version",
+ notes = "Creates the next version of a flow. The version number of the object being created must be the " +
+ "next available version integer. Flow versions are immutable after they are created.",
response = VersionedFlowSnapshot.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -325,7 +329,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets summary information for all versions of a flow. Versions are ordered newest->oldest.",
+ value = "Get bucket flow versions",
+ notes = "Gets summary information for all versions of a flow. Versions are ordered newest->oldest.",
response = VersionedFlowSnapshotMetadata.class,
responseContainer = "List",
extensions = {
@@ -362,7 +367,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Get the latest version of a flow",
+ value = "Get latest bucket flow version content",
+ notes = "Gets the latest version of a flow, including the metadata and content of the flow.",
response = VersionedFlowSnapshot.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -397,7 +403,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Get the metadata for the latest version of a flow",
+ value = "Get latest bucket flow version metadata",
+ notes = "Gets the metadata for the latest version of a flow.",
response = VersionedFlowSnapshotMetadata.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -431,7 +438,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the given version of a flow",
+ value = "Get bucket flow version",
+ notes = "Gets the given version of a flow, including the metadata and content for the version.",
response = VersionedFlowSnapshot.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -468,7 +476,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Returns a list of differences between 2 versions of a flow",
+ value = "Get bucket flow diff",
+ notes = "Computes the differences between two given versions of a flow.",
response = VersionedFlowDifference.class,
extensions = {
@Extension(name = "access-policy", properties = {
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketResource.java
index e7c0df4..34387e8 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BucketResource.java
@@ -97,7 +97,7 @@
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Creates a bucket",
+ value = "Create bucket",
response = Bucket.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -126,7 +126,7 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets all buckets",
+ value = "Get all buckets",
notes = "The returned list will include only buckets for which the user is authorized." +
"If the user is not authorized for any buckets, this returns an empty list.",
response = Bucket.class,
@@ -162,7 +162,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets a bucket",
+ value = "Get bucket",
+ notes = "Gets the bucket with the given id.",
response = Bucket.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -192,7 +193,8 @@
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Updates a bucket",
+ value = "Update bucket",
+ notes = "Updates the bucket with the given id.",
response = Bucket.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -242,7 +244,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Deletes a bucket along with all objects stored in the bucket",
+ value = "Delete bucket",
+ notes = "Deletes the bucket with the given id, along with all objects stored in the bucket",
response = Bucket.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -276,7 +279,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Retrieves field names for searching or sorting on buckets.",
+ value = "Get bucket fields",
+ notes = "Retrieves bucket field names for searching or sorting on buckets.",
response = Fields.class
)
public Response getAvailableBucketFields() {
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BundleResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BundleResource.java
index 9b891ab..48532fb 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BundleResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/BundleResource.java
@@ -61,7 +61,7 @@
@Path("/bundles")
@Api(
value = "bundles",
- description = "Gets metadata about extension bundles and their versions.",
+ description = "Gets metadata about extension bundles and their versions. ",
authorizations = { @Authorization("Authorization") }
)
public class BundleResource extends AuthorizableApplicationResource {
@@ -89,9 +89,10 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Get extension bundles across all authorized buckets",
- notes = "The returned items will include only items from buckets for which the user is authorized. " +
- "If the user is not authorized to any buckets, an empty list will be returned.",
+ value = "Get all bundles",
+ notes = "Gets the metadata for all bundles across all authorized buckets with optional filters applied. " +
+ "The returned results will include only items from buckets for which the user is authorized. " +
+ "If the user is not authorized to any buckets, an empty list will be returned. " + NON_GUARANTEED_ENDPOINT,
response = Bundle.class,
responseContainer = "List"
)
@@ -133,7 +134,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the metadata about an extension bundle",
+ value = "Get bundle",
+ notes = "Gets the metadata about an extension bundle. " + NON_GUARANTEED_ENDPOINT,
nickname = "globalGetExtensionBundle",
response = Bundle.class,
extensions = {
@@ -165,7 +167,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Deletes the given extension bundle and all of it's versions",
+ value = "Delete bundle",
+ notes = "Deletes the given extension bundle and all of it's versions. " + NON_GUARANTEED_ENDPOINT,
nickname = "globalDeleteExtensionBundle",
response = Bundle.class,
extensions = {
@@ -203,9 +206,9 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Get extension bundles versions across all authorized buckets",
- notes = "The returned items will include only items from buckets for which the user is authorized. " +
- "If the user is not authorized to any buckets, an empty list will be returned.",
+ value = "Get all bundle versions",
+ notes = "Gets the metadata about extension bundle versions across all authorized buckets with optional filters applied. " +
+ "If the user is not authorized to any buckets, an empty list will be returned. " + NON_GUARANTEED_ENDPOINT,
response = BundleVersionMetadata.class,
responseContainer = "List"
)
@@ -243,7 +246,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the metadata about the versions of an extension bundle",
+ value = "Get bundle versions",
+ notes = "Gets the metadata for the versions of the given extension bundle. " + NON_GUARANTEED_ENDPOINT,
nickname = "globalGetBundleVersions",
response = BundleVersionMetadata.class,
responseContainer = "List",
@@ -276,7 +280,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the descriptor for the specified version of the extension bundle",
+ value = "Get bundle version",
+ notes = "Gets the descriptor for the given version of the given extension bundle. " + NON_GUARANTEED_ENDPOINT,
nickname = "globalGetBundleVersion",
response = BundleVersion.class,
extensions = {
@@ -311,7 +316,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_OCTET_STREAM)
@ApiOperation(
- value = "Gets the binary content for the specified version of the extension bundle",
+ value = "Get bundle version content",
+ notes = "Gets the binary content for the given version of the given extension bundle. " + NON_GUARANTEED_ENDPOINT,
nickname = "globalGetBundleVersionContent",
response = byte[].class,
extensions = {
@@ -349,7 +355,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Deletes the given extension bundle version",
+ value = "Delete bundle version",
+ notes = "Deletes the given extension bundle version and it's associated binary content. " + NON_GUARANTEED_ENDPOINT,
nickname = "globalDeleteBundleVersion",
response = BundleVersion.class,
extensions = {
@@ -387,7 +394,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the metadata about the extensions in the given extension bundle version",
+ value = "Get bundle version extensions",
+ notes = "Gets the metadata about the extensions in the given extension bundle version. " + NON_GUARANTEED_ENDPOINT,
nickname = "globalGetBundleVersionExtensions",
response = ExtensionMetadata.class,
responseContainer = "List",
@@ -424,8 +432,9 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the metadata about the extensions in the given extension bundle version",
- nickname = "globalGetBundleVersionExtensions",
+ value = "Get bundle version extension",
+ notes = "Gets the metadata about the extension with the given name in the given extension bundle version. " + NON_GUARANTEED_ENDPOINT,
+ nickname = "globalGetBundleVersionExtension",
response = org.apache.nifi.registry.extension.component.manifest.Extension.class,
responseContainer = "List",
extensions = {
@@ -464,7 +473,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.TEXT_HTML)
@ApiOperation(
- value = "Gets the documentation for the given extension in the given extension bundle version",
+ value = "Get bundle version extension docs",
+ notes = "Gets the documentation for the given extension in the given extension bundle version. " + NON_GUARANTEED_ENDPOINT,
response = String.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -501,7 +511,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.TEXT_HTML)
@ApiOperation(
- value = "Gets the additional details documentation for the given extension in the given extension bundle version",
+ value = "Get bundle version extension docs details",
+ notes = "Gets the additional details documentation for the given extension in the given extension bundle version. " + NON_GUARANTEED_ENDPOINT,
response = String.class,
extensions = {
@Extension(name = "access-policy", properties = {
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ConfigResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ConfigResource.java
index a600a11..48f3518 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ConfigResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ConfigResource.java
@@ -61,7 +61,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets NiFi Registry configurations",
+ value = "Get configration",
+ notes = "Gets the NiFi Registry configurations.",
response = RegistryConfiguration.class,
extensions = {
@Extension(name = "access-policy", properties = {
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ExtensionRepoResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ExtensionRepoResource.java
index a7d6d04..d2dbeb8 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ExtensionRepoResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ExtensionRepoResource.java
@@ -62,8 +62,8 @@
@Component
@Path("/extension-repository")
@Api(
- value = "extension_repository",
- description = "Interact with extension bundles via the hierarchy of bucket/group/artifact/version.",
+ value = "extension repository",
+ description = "Interact with extension bundles via the hierarchy of bucket/group/artifact/version. ",
authorizations = { @Authorization("Authorization") }
)
public class ExtensionRepoResource extends AuthorizableApplicationResource {
@@ -87,7 +87,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the names of the buckets the current user is authorized for in order to browse the repo by bucket",
+ value = "Get extension repo buckets",
+ notes = "Gets the names of the buckets the current user is authorized for in order to browse the repo by bucket. " + NON_GUARANTEED_ENDPOINT,
response = ExtensionRepoBucket.class,
responseContainer = "List"
)
@@ -115,7 +116,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the groups in the extension repository in the bucket with the given name",
+ value = "Get extension repo groups",
+ notes = "Gets the groups in the extension repository in the given bucket. " + NON_GUARANTEED_ENDPOINT,
response = ExtensionRepoGroup.class,
responseContainer = "List",
extensions = {
@@ -148,7 +150,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the artifacts in the extension repository with the given group in the bucket with the given name",
+ value = "Get extension repo artifacts",
+ notes = "Gets the artifacts in the extension repository in the given bucket and group. " + NON_GUARANTEED_ENDPOINT,
response = ExtensionRepoArtifact.class,
responseContainer = "List",
extensions = {
@@ -184,7 +187,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the versions of the artifact in the extension repository specified by the given bucket, group, artifact, and version",
+ value = "Get extension repo versions",
+ notes = "Gets the versions in the extension repository for the given bucket, group, and artifact. " + NON_GUARANTEED_ENDPOINT,
response = ExtensionRepoVersionSummary.class,
responseContainer = "List",
extensions = {
@@ -223,7 +227,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the information about the version specified by the given bucket, group, artifact, and version",
+ value = "Get extension repo version",
+ notes = "Gets information about the version in the given bucket, group, and artifact. " + NON_GUARANTEED_ENDPOINT,
response = ExtensionRepoVersion.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -294,7 +299,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the information about the extensions in the extension bundle specified by the given bucket, group, artifact, and version",
+ value = "Get extension repo extensions",
+ notes = "Gets information about the extensions in the given bucket, group, artifact, and version. " + NON_GUARANTEED_ENDPOINT,
response = ExtensionMetadata.class,
responseContainer = "List",
extensions = {
@@ -341,7 +347,9 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the information about the extension in the extension bundle specified by the given bucket, group, artifact, and version",
+ value = "Get extension repo extension",
+ notes = "Gets information about the extension with the given name in " +
+ "the given bucket, group, artifact, and version. " + NON_GUARANTEED_ENDPOINT,
response = org.apache.nifi.registry.extension.component.manifest.Extension.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -385,7 +393,9 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.TEXT_HTML)
@ApiOperation(
- value = "Gets the documentation for the given extension",
+ value = "Get extension repo extension docs",
+ notes = "Gets the documentation for the extension with the given name in " +
+ "the given bucket, group, artifact, and version. " + NON_GUARANTEED_ENDPOINT,
response = String.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -429,7 +439,9 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.TEXT_HTML)
@ApiOperation(
- value = "Gets the additional details documentation for the given extension",
+ value = "Get extension repo extension details",
+ notes = "Gets the additional details documentation for the extension with the given name in " +
+ "the given bucket, group, artifact, and version. " + NON_GUARANTEED_ENDPOINT,
response = String.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -473,7 +485,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_OCTET_STREAM)
@ApiOperation(
- value = "Gets the binary content of the extension bundle specified by the given bucket, group, artifact, and version",
+ value = "Get extension repo version content",
+ notes = "Gets the binary content of the bundle with the given bucket, group, artifact, and version. " + NON_GUARANTEED_ENDPOINT,
response = byte[].class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -517,7 +530,9 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.TEXT_PLAIN)
@ApiOperation(
- value = "Gets the hex representation of the SHA-256 digest for the binary content of the version of the extension bundle",
+ value = "Get extension repo version checksum",
+ notes = "Gets the hex representation of the SHA-256 digest for the binary content of the bundle " +
+ "with the given bucket, group, artifact, and version." + NON_GUARANTEED_ENDPOINT,
response = String.class,
extensions = {
@Extension(name = "access-policy", properties = {
@@ -558,9 +573,10 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.TEXT_PLAIN)
@ApiOperation(
- value = "Gets the hex representation of the SHA-256 digest for the binary content of the version of the extension bundle. Since the " +
- "same group-artifact-version can exist in multiple buckets, this will return the checksum of the first one returned. This will be " +
- "consistent since the checksum must be the same when existing in multiple buckets.",
+ value = "Get global extension repo version checksum",
+ notes = "Gets the hex representation of the SHA-256 digest for the binary content with the given bucket, group, artifact, and version. " +
+ "Since the same group-artifact-version can exist in multiple buckets, this will return the checksum of the first one returned. " +
+ "This will be consistent since the checksum must be the same when existing in multiple buckets. " + NON_GUARANTEED_ENDPOINT,
response = String.class
)
@ApiResponses({
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ExtensionResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ExtensionResource.java
index 9ca344a..8f95453 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ExtensionResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ExtensionResource.java
@@ -53,7 +53,7 @@
@Path("/extensions")
@Api(
value = "extensions",
- description = "Find and retrieve extensions.",
+ description = "Find and retrieve extensions. ",
authorizations = { @Authorization("Authorization") }
)
public class ExtensionResource extends AuthorizableApplicationResource {
@@ -74,9 +74,11 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets all extensions that match the filter params and are part of bundles located in buckets the current user is authorized for.",
- response = ExtensionMetadataContainer.class,
- responseContainer = "List"
+ value = "Get all extensions",
+ notes = "Gets the metadata for all extensions that match the filter params and are part of bundles located in buckets the " +
+ "current user is authorized for. If the user is not authorized to any buckets, an empty result set will be returned." +
+ NON_GUARANTEED_ENDPOINT,
+ response = ExtensionMetadataContainer.class
)
@ApiResponses({
@ApiResponse(code = 400, message = HttpStatusMessages.MESSAGE_400),
@@ -124,9 +126,11 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets all extensions that provide the specified API and are part of bundles located in buckets the current user is authorized for.",
- response = ExtensionMetadataContainer.class,
- responseContainer = "List"
+ value = "Get extensions providing service API",
+ notes = "Gets the metadata for extensions that provide the specified API and are part of bundles located in buckets the " +
+ "current user is authorized for. If the user is not authorized to any buckets, an empty result set will be returned." +
+ NON_GUARANTEED_ENDPOINT,
+ response = ExtensionMetadataContainer.class
)
@ApiResponses({
@ApiResponse(code = 400, message = HttpStatusMessages.MESSAGE_400),
@@ -176,7 +180,9 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets all the extension tags known to this NiFi Registry instance.",
+ value = "Get extension tags",
+ notes = "Gets all the extension tags known to this NiFi Registry instance, along with the " +
+ "number of extensions that have the given tag." + NON_GUARANTEED_ENDPOINT,
response = TagCount.class,
responseContainer = "List"
)
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/FlowResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/FlowResource.java
index 9a1fe55..ec42130 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/FlowResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/FlowResource.java
@@ -79,7 +79,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Retrieves the available field names that can be used for searching or sorting on flows.",
+ value = "Get flow fields",
+ notes = "Retrieves the flow field names that can be used for searching or sorting on flows.",
response = Fields.class
)
public Response getAvailableFlowFields() {
@@ -93,7 +94,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets a flow",
+ value = "Get flow",
+ notes = "Gets a flow by id.",
nickname = "globalGetFlow",
response = VersionedFlow.class,
extensions = {
@@ -133,7 +135,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets summary information for all versions of a flow. Versions are ordered newest->oldest.",
+ value = "Get flow versions",
+ notes = "Gets summary information for all versions of a given flow. Versions are ordered newest->oldest.",
nickname = "globalGetFlowVersions",
response = VersionedFlowSnapshotMetadata.class,
responseContainer = "List",
@@ -175,7 +178,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets the given version of a flow",
+ value = "Get flow version",
+ notes = "Gets the given version of a flow, including metadata and flow content.",
nickname = "globalGetFlowVersion",
response = VersionedFlowSnapshot.class,
extensions = {
@@ -217,7 +221,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Get the latest version of a flow",
+ value = "Get latest flow version",
+ notes = "Gets the latest version of a flow, including metadata and flow content.",
nickname = "globalGetLatestFlowVersion",
response = VersionedFlowSnapshot.class,
extensions = {
@@ -256,7 +261,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Get the metadata for the latest version of a flow",
+ value = "Get latest flow version metadata",
+ notes = "Gets the metadata for the latest version of a flow.",
nickname = "globalGetLatestFlowVersionMetadata",
response = VersionedFlowSnapshotMetadata.class,
extensions = {
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ItemResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ItemResource.java
index b137569..56ee286 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ItemResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/ItemResource.java
@@ -87,8 +87,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Get items across all buckets",
- notes = "The returned items will include only items from buckets for which the user is authorized. " +
+ value = "Get all items",
+ notes = "Get items across all buckets. The returned items will include only items from buckets for which the user is authorized. " +
"If the user is not authorized to any buckets, an empty list will be returned.",
response = BucketItem.class,
responseContainer = "List"
@@ -125,7 +125,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Gets items of the given bucket",
+ value = "Get bucket items",
+ notes = "Gets the items located in the given bucket.",
response = BucketItem.class,
responseContainer = "List",
nickname = "getItemsInBucket",
@@ -159,7 +160,8 @@
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(
- value = "Retrieves the available field names for searching or sorting on bucket items.",
+ value = "Get item fields",
+ notes = "Retrieves the item field names for searching or sorting on bucket items.",
response = Fields.class
)
public Response getAvailableBucketItemFields() {
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/TenantResource.java b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/TenantResource.java
index 11ed1e1..d9d3521 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/TenantResource.java
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/TenantResource.java
@@ -92,7 +92,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("users")
@ApiOperation(
- value = "Creates a user",
+ value = "Create user",
notes = NON_GUARANTEED_ENDPOINT,
response = User.class,
extensions = {
@@ -144,7 +144,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("users")
@ApiOperation(
- value = "Gets all users",
+ value = "Get all users",
notes = NON_GUARANTEED_ENDPOINT,
response = User.class,
responseContainer = "List",
@@ -182,7 +182,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("users/{id}")
@ApiOperation(
- value = "Gets a user",
+ value = "Get user",
notes = NON_GUARANTEED_ENDPOINT,
response = User.class,
extensions = {
@@ -225,7 +225,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("users/{id}")
@ApiOperation(
- value = "Updates a user",
+ value = "Update user",
notes = NON_GUARANTEED_ENDPOINT,
response = User.class,
extensions = {
@@ -283,7 +283,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("users/{id}")
@ApiOperation(
- value = "Deletes a user",
+ value = "Delete user",
notes = NON_GUARANTEED_ENDPOINT,
response = User.class,
extensions = {
@@ -334,7 +334,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("user-groups")
@ApiOperation(
- value = "Creates a user group",
+ value = "Create user group",
notes = NON_GUARANTEED_ENDPOINT,
response = UserGroup.class,
extensions = {
@@ -385,7 +385,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("user-groups")
@ApiOperation(
- value = "Gets all user groups",
+ value = "Get user groups",
notes = NON_GUARANTEED_ENDPOINT,
response = UserGroup.class,
responseContainer = "List",
@@ -420,7 +420,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("user-groups/{id}")
@ApiOperation(
- value = "Gets a user group",
+ value = "Get user group",
notes = NON_GUARANTEED_ENDPOINT,
response = UserGroup.class,
extensions = {
@@ -464,7 +464,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("user-groups/{id}")
@ApiOperation(
- value = "Updates a user group",
+ value = "Update user group",
notes = NON_GUARANTEED_ENDPOINT,
response = UserGroup.class,
extensions = {
@@ -523,7 +523,7 @@
@Produces(MediaType.APPLICATION_JSON)
@Path("user-groups/{id}")
@ApiOperation(
- value = "Deletes a user group",
+ value = "Delete user group",
notes = NON_GUARANTEED_ENDPOINT,
response = UserGroup.class,
extensions = {
diff --git a/nifi-registry-core/nifi-registry-web-api/src/main/resources/templates/index.html.hbs b/nifi-registry-core/nifi-registry-web-api/src/main/resources/templates/index.html.hbs
index 97a8fc5..aca97fe 100644
--- a/nifi-registry-core/nifi-registry-web-api/src/main/resources/templates/index.html.hbs
+++ b/nifi-registry-core/nifi-registry-web-api/src/main/resources/templates/index.html.hbs
@@ -441,6 +441,10 @@
// organize the endpoints
organizeEndpoints('/buckets', $('#bucket-endpoints'));
organizeEndpoints('/items', $('#item-endpoints'));
+ organizeEndpoints('/flows', $('#flow-endpoints'));
+ organizeEndpoints('/bundles', $('#bundle-endpoints'));
+ organizeEndpoints('/extensions', $('#extension-endpoints'));
+ organizeEndpoints('/extension-repository', $('#extension-repository-endpoints'));
organizeEndpoints('/tenants', $('#tenant-endpoints'));
organizeEndpoints('/policies', $('#policy-endpoints'));
organizeEndpoints('/access', $('#access-endpoints'));
@@ -479,6 +483,38 @@
</div>
<div class="section">
<div class="section-header">
+ <div class="title link">Flows</div>
+ <div class="sub-title section-description">Flow endpoints</div>
+ <div class="clear"></div>
+ </div>
+ <div id="flow-endpoints" class="section-endpoints hidden"></div>
+ </div>
+ <div class="section">
+ <div class="section-header">
+ <div class="title link">Bundles</div>
+ <div class="sub-title section-description">Bundle endpoints</div>
+ <div class="clear"></div>
+ </div>
+ <div id="bundle-endpoints" class="section-endpoints hidden"></div>
+ </div>
+ <div class="section">
+ <div class="section-header">
+ <div class="title link">Extensions</div>
+ <div class="sub-title section-description">Extension endpoints</div>
+ <div class="clear"></div>
+ </div>
+ <div id="extension-endpoints" class="section-endpoints hidden"></div>
+ </div>
+ <div class="section">
+ <div class="section-header">
+ <div class="title link">Extension Repository</div>
+ <div class="sub-title section-description">Extension Repository endpoints</div>
+ <div class="clear"></div>
+ </div>
+ <div id="extension-repository-endpoints" class="section-endpoints hidden"></div>
+ </div>
+ <div class="section">
+ <div class="section-header">
<div class="title link">Tenants</div>
<div class="sub-title section-description">Tenant endpoints</div>
<div class="clear"></div>
diff --git a/nifi-registry-core/nifi-registry-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp b/nifi-registry-core/nifi-registry-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp
index 63a7886..402e841 100644
--- a/nifi-registry-core/nifi-registry-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp
+++ b/nifi-registry-core/nifi-registry-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp
@@ -68,7 +68,7 @@
<div class="header">Developer</div>
<div id="developer-links" class="component-links">
<ul>
- <li class="component-item"><a class="document-link rest-api" href="rest-api/index.html" target="component-usage">Rest Api</a></li>
+ <li class="component-item"><a class="document-link rest-api" href="rest-api/rest-api.html" target="component-usage">Rest Api</a></li>
</ul>
<span class="no-matching no-components hidden">No matching developer guides</span>
</div>
diff --git a/pom.xml b/pom.xml
index 7c3eddf..b26438a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -139,6 +139,17 @@
</repository>
</repositories>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>jcenter-releases</id>
+ <name>jcenter</name>
+ <url>http://jcenter.bintray.com</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
+
<dependencyManagement>
<dependencies>