# @koopjs/output-geoservices

> Wraps FeatureServer as a Koop output plugin

Latest version **8.1.25** (published 2026-03-31) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @koopjs/output-geoservices
pnpm add @koopjs/output-geoservices
yarn add @koopjs/output-geoservices
bun add @koopjs/output-geoservices
```

## Health

**Score 45/100 (D)** — status: active.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 8.1.25 |
| Published | 2026-03-31 |
| First published | 2020-10-15 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 12 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 713 |
| Author | Daniel Fenton |
| Maintainers | tomtom92, haoliang, richgwozdz, sanshr, dhatcher, sonofflynn89, drspacemanphd, anderskane, kri14029 |
| Keywords | koop, featureserver, plugin, output, geoservices |

## Links

- npm: https://www.npmjs.com/package/@koopjs/output-geoservices
- Repository: https://github.com/koopjs/koop
- Homepage: https://github.com/koopjs/koop#readme
- Issues: https://github.com/koopjs/koop/issues
- npm.io page: https://npm.io/package/@koopjs/output-geoservices

## Dependencies (2)

- [@koopjs/logger](https://npm.io/package/@koopjs/logger.md) 5.0.0
- [@koopjs/featureserver](https://npm.io/package/@koopjs/featureserver.md) 9.3.0

## Recent versions

- 8.1.25 (latest) — 2026-03-31
- 3.0.0-beta.1 (beta) — 2021-02-18
- 8.1.24 — 2024-08-12
- 8.1.23 — 2024-06-26
- 8.1.22 — 2024-06-20
- 8.1.21 — 2024-05-29
- 8.1.20 — 2024-05-22
- 8.1.19 — 2024-05-16
- 8.1.18 — 2024-05-13
- 8.1.17 — 2024-05-10
- 8.1.16 — 2024-05-01
- 8.1.15 — 2024-05-01
- 8.1.14 — 2024-04-19
- 8.1.13 — 2024-04-10
- 8.1.12 — 2024-03-27
- … 60 more at https://npm.io/package/@koopjs/output-geoservices/versions

## README

# Koop Geoservices Output Plugin

![ https://www.npmjs.com/package/@koopjs/output-geoservices](https://img.shields.io/npm/v/@koopjs/output-geoservices.svg?style=flat-square) ![coverage](https://raw.githubusercontent.com/koopjs/koop/master/packages/output-geoservices/coverage.svg)

Wraps FeatureServer into a [Koop](http://koopjs.github.io) Output plugin.

## Usage
```js
const Koop = require('@koopjs/koop-core')
const config = require('config')
const koop = new Koop(config)
const outputGeoservices = require('@koopjs/output-geoservices')
const provider = require('koop-agol') // any koop provider here

// All output plugins must be registered before any providers are registered
koop.register(outputGeoservices)
koop.register(provider)

koop.server.listen(80)
```

## Options

### `defaults (Object)`
The `defaults` options allows the setting of some FeatureServer metadata properties. The `defaults` option should be an object with some of the following properties:

```js
{
  defaults: {
    currentVersion, // number (11.2)
    fullVersion, // string ('11.2.0')
    maxRecordCount, // number (500)
    server: {
      serviceDescription, // string ('Default text for serviceDescription')
      description, // string ('Default text for description')
      copyrightText, // string ('Default text for copyright')
      hasStaticData, // boolean (true)
      spatialReference, // object (Esri spatial reference)
      initialExtent, // object (Esri spatial envelope)
      fullExtent, // object (Esri spatial envelope)
    },
    layer: {
      description, // string ('Default text for layer description')
      copyrightText, // string ('Default text for layer copyright')
      extent, // object (Esri spatial envelope)
    },
  }
}

```
Note that the `defaults` option only overrides FeatureServer's defaults.  Providers that set metadata may override values set by the above `defaults` properties.


### `useHttpForTokenUrl (boolean)`
The `rest/info` route generates a property `tokenServicesUrl` with value for the URL to use when requesting a token. By default the protocol for this URL is `https`, but if you require it to be `http` set the value of this option to `true`.

```js
{
  useHttpForTokenUrl: true
}
```

### `logger (Logger)`
You can leverage your own custom logger instance, but it must adhere to the Winston logger specification.

```js
{
  logger // some custom Logger instance
}
```

### `includeOwningSystemUrl (boolean)`
If `true`, adds `owningSystemUrl` to the `rest/info` response.  Defaults to false.

## Routes

```js
<provider-namespace>/rest/info
<provider-namespace>/rest/generateToken
<provider-namespace>/rest/services/<provider-path-params>/FeatureServer/:layer/:method
<provider-namespace>/rest/services/<provider-path-params>/FeatureServer/layers
<provider-namespace>/rest/services/<provider-path-params>/FeatureServer/:layer
<provider-namespace>/rest/services/<provider-path-params>/FeatureServer
<provider-namespace>/rest/services/<provider-path-params>/FeatureServer*
<provider-namespace>/rest/services/<provider-path-params>/MapServer*
```

---
_Source: https://npm.io/package/@koopjs/output-geoservices · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
