diff --git a/devops/development-pipeline.yml b/devops/development-pipeline.yml
new file mode 100644
index 0000000000000000000000000000000000000000..21e6a12068d15c957e135b10d0d5047afc2f0e8f
--- /dev/null
+++ b/devops/development-pipeline.yml
@@ -0,0 +1,63 @@
+#####################
+# README: Defines a template to be used as a starting point for defining a service pipeline
+#####################
+
+trigger:
+  batch: true
+  branches:
+    include:
+      - master
+  paths:
+    exclude:
+      - /**/*.md
+      - .gitignore
+      - images/
+
+pr:
+  autoCancel: true
+  branches:
+    include:
+      - '*'
+  paths:
+    exclude:
+      - /**/*.md
+      - .gitignore
+      - images/
+
+resources:
+  repositories:
+    - repository: osdu-infrastructure
+      type: git
+      name: osdu-r2/osdu-infrastructure
+
+variables:
+  - group: 'Azure Common Secrets'
+  - group: 'Azure - Common'
+
+  - name: serviceName
+    value: 'indexer'
+
+stages:
+  - template: devops/service-pipelines/build-stage.yml@osdu-infrastructure
+    parameters:
+      mavenGoal: 'package'
+      mavenPublishJUnitResults: true
+      serviceCoreMavenOptions: '-P indexer-core'
+      mavenOptions: '-P indexer-azure'
+      copyFileContents: |
+        pom.xml
+        provider/indexer-azure/maven/settings.xml
+        provider/indexer-azure/pom.xml
+        provider/indexer-azure/target/*-spring-boot.jar
+      copyFileContentsToFlatten: ''
+      mavenSettingsFile: './maven/settings.xml'
+      serviceBase: ${{ variables.serviceName }}
+      testingRootFolder: 'testing'
+  - template: devops/service-pipelines/deploy-stages.yml@osdu-infrastructure
+    parameters:
+      serviceName: ${{ variables.serviceName }}
+      testCoreMavenPomFile: 'testing/indexer-test-core/pom.xml'
+      testCoreMavenOptions: '--settings $(System.DefaultWorkingDirectory)/drop/deploy/testing/maven/settings.xml'
+      providers:
+        -  name: Azure
+           environments: ['test']
diff --git a/provider/indexer-azure/README.md b/provider/indexer-azure/README.md
index f3eb0638648711b8ede93e134bb12d89ff6e1dcf..fbfb5cea4f29fc1bf580de4af139f7633eb8514c 100644
--- a/provider/indexer-azure/README.md
+++ b/provider/indexer-azure/README.md
@@ -39,6 +39,7 @@ az keyvault secret show --vault-name $KEY_VAULT_NAME --name $KEY_VAULT_SECRET_NA
 
 | name | value | description | sensitive? | source |
 | ---  | ---   | ---         | ---        | ---    |
+| `server.servlet.contextPath` | `/api/indexer/v2/` | Servlet context path | no | - |
 | `storage_service_url` | ex `https://storage.azurewebsites.net` | Endpoint of storage service | no | output of infrastructure deployments |
 | `STORAGE_SCHEMA_HOST` | `${storage_service_url}/schemas` | Endpoint of schema API | no | - |
 | `STORAGE_QUERY_RECORD_HOST` | `${storage_service_url}/query/records` | Endpoint of records API | no | - |
diff --git a/provider/indexer-azure/src/main/resources/application.properties b/provider/indexer-azure/src/main/resources/application.properties
index 65f111f5775f1f121dd8ae3a36ff1bf46f8b1c7e..b390dd92c2b3ced9ff7186d02993d7f5e5eec4b9 100644
--- a/provider/indexer-azure/src/main/resources/application.properties
+++ b/provider/indexer-azure/src/main/resources/application.properties
@@ -13,6 +13,7 @@
 #  limitations under the License.
 
 LOG_PREFIX=indexer
+server.servlet.contextPath=/api/indexer/v2/
 REGION=centralus
 logging.level.org.opendes.osdu=DEBUG
 JAVA_OPTS=-Dserver.port=80