Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

server - define api #8

Closed
gardleopard opened this issue Oct 15, 2014 · 7 comments
Closed

server - define api #8

gardleopard opened this issue Oct 15, 2014 · 7 comments
Milestone

Comments

@gardleopard
Copy link
Contributor

Decide initial schema for our api.

suggestion:

{
  "name" : "featureName",
  "status" : "on/off/custom",
  "customKey" : "user",
  "customValue" : "beta,employee",
  "activeFrom" : "2012-04-23T18:25:43.511Z",
  "activeTo" : "2012-04-23T18:25:43.511Z"
}
@gardleopard gardleopard added this to the MVP 1 milestone Oct 15, 2014
@eirslett
Copy link

{
  "name": "featureName",
  "status": 0,
  "parameters": {
    "foo": "bar",
    "baz": 3
  }
}

works well for JSON deserializers; you get a type-safe Feature with a Map<String,String> parameter map. I think that's what the MVP uses.

@jarib
Copy link
Contributor

jarib commented Oct 16, 2014

👍 for @eirslett's proposal

  1. Parameters should definitely be an object, not a string.
  2. Your parameters example has a number in it, so it's not a Map<String, String>. Typo?
  3. I think it's OK to keep the status property as a human-readable string.

@ivarconr
Copy link
Member

Instead of calling it custom, could we not just keep it as "strategy" as this is a well concept in the feature-toggle domain. And also it is much simpler for the generic-client if we say that parameters are always Map<string, string>.

The bigger question is whether we need multiple parameters for an activation strategy, or if we always only require one parameter? In all "known" strategies it would work just fine with one parameter (with the exception of activation by date (from-to).

{
  "name": "featureName",
  "status": "on/off/custom",
  "strategy": "by_user",
  "parameters": {
    "foo": "bar",
    "baz": "3"
  }
}

@gardleopard
Copy link
Contributor Author

Landed on:

{
  "name": "featureX",
  "status": "on/off",
  "strategy": "strategyX",
  "parameters": {
    "foo": "bar"
  }
}

sveinelo pushed a commit that referenced this issue Oct 20, 2014
@Andersos
Copy link
Contributor

There has been a update to the api:

{
  "name": "featureX",
  "description": "Description",
  "enabled": true/false,
  "strategy": "strategyX",
  "parameters": {
    "foo": "bar"
  }
}

Edit after @jarib comment. enabled is boolean but was written with quotes.

@jarib
Copy link
Contributor

jarib commented Oct 22, 2014

Why not just boolean true/false instead of encoding it as a string?

@Andersos
Copy link
Contributor

👍 see edit.

ivarconr pushed a commit that referenced this issue Feb 20, 2020
renovate bot added a commit that referenced this issue Apr 4, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [minimist](https://togithub.com/minimistjs/minimist) | [`1.2.7` ->
`1.2.8`](https://renovatebot.com/diffs/npm/minimist/1.2.7/1.2.8) |
[![age](https://badges.renovateapi.com/packages/npm/minimist/1.2.8/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/minimist/1.2.8/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/minimist/1.2.8/compatibility-slim/1.2.7)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/minimist/1.2.8/confidence-slim/1.2.7)](https://docs.renovatebot.com/merge-confidence/)
|
| [minimist](https://togithub.com/minimistjs/minimist) | [`1.2.6` ->
`1.2.8`](https://renovatebot.com/diffs/npm/minimist/1.2.6/1.2.8) |
[![age](https://badges.renovateapi.com/packages/npm/minimist/1.2.8/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/minimist/1.2.8/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/minimist/1.2.8/compatibility-slim/1.2.6)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/minimist/1.2.8/confidence-slim/1.2.6)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>minimistjs/minimist</summary>

###
[`v1.2.8`](https://togithub.com/minimistjs/minimist/blob/HEAD/CHANGELOG.md#v128-httpsgithubcomminimistjsminimistcomparev127v128---2023-02-09)

[Compare
Source](https://togithub.com/minimistjs/minimist/compare/v1.2.7...v1.2.8)

##### Merged

- \[Fix] Fix long option followed by single dash
[`#17`](https://togithub.com/minimistjs/minimist/pull/17)
- \[Tests] Remove duplicate test
[`#12`](https://togithub.com/minimistjs/minimist/pull/12)
- \[Fix] opt.string works with multiple aliases
[`#10`](https://togithub.com/minimistjs/minimist/pull/10)

##### Fixed

- \[Fix] Fix long option followed by single dash
([#&#8203;17](https://togithub.com/minimistjs/minimist/issues/17))
[`#15`](https://togithub.com/minimistjs/minimist/issues/15)
- \[Tests] Remove duplicate test
([#&#8203;12](https://togithub.com/minimistjs/minimist/issues/12))
[`#8`](https://togithub.com/minimistjs/minimist/issues/8)
- \[Fix] Fix long option followed by single dash
[`#15`](https://togithub.com/minimistjs/minimist/issues/15)
- \[Fix] opt.string works with multiple aliases
([#&#8203;10](https://togithub.com/minimistjs/minimist/issues/10))
[`#9`](https://togithub.com/minimistjs/minimist/issues/9)
- \[Fix] Fix handling of short option with non-trivial equals
[`#5`](https://togithub.com/minimistjs/minimist/issues/5)
- \[Tests] Remove duplicate test
[`#8`](https://togithub.com/minimistjs/minimist/issues/8)
- \[Fix] opt.string works with multiple aliases
[`#9`](https://togithub.com/minimistjs/minimist/issues/9)

##### Commits

- Merge tag 'v0.2.3'
[`a026794`](https://togithub.com/minimistjs/minimist/commit/a0267947c7870fc5847cf2d437fbe33f392767da)
- \[eslint] fix indentation and whitespace
[`5368ca4`](https://togithub.com/minimistjs/minimist/commit/5368ca4147e974138a54cc0dc4cea8f756546b70)
- \[eslint] fix indentation and whitespace
[`e5f5067`](https://togithub.com/minimistjs/minimist/commit/e5f5067259ceeaf0b098d14bec910f87e58708c7)
- \[eslint] more cleanup
[`62fde7d`](https://togithub.com/minimistjs/minimist/commit/62fde7d935f83417fb046741531a9e2346a36976)
- \[eslint] more cleanup
[`36ac5d0`](https://togithub.com/minimistjs/minimist/commit/36ac5d0d95e4947d074e5737d94814034ca335d1)
- \[meta] add `auto-changelog`
[`73923d2`](https://togithub.com/minimistjs/minimist/commit/73923d223553fca08b1ba77e3fbc2a492862ae4c)
- \[actions] add reusable workflows
[`d80727d`](https://togithub.com/minimistjs/minimist/commit/d80727df77bfa9e631044d7f16368d8f09242c91)
- \[eslint] add eslint; rules to enable later are warnings
[`48bc06a`](https://togithub.com/minimistjs/minimist/commit/48bc06a1b41f00e9cdf183db34f7a51ba70e98d4)
- \[eslint] fix indentation
[`34b0f1c`](https://togithub.com/minimistjs/minimist/commit/34b0f1ccaa45183c3c4f06a91f9b405180a6f982)
- \[readme] rename and add badges
[`5df0fe4`](https://togithub.com/minimistjs/minimist/commit/5df0fe49211bd09a3636f8686a7cb3012c3e98f0)
- \[Dev Deps] switch from `covert` to `nyc`
[`a48b128`](https://togithub.com/minimistjs/minimist/commit/a48b128fdb8d427dfb20a15273f83e38d97bef07)
- \[Dev Deps] update `covert`, `tape`; remove unnecessary `tap`
[`f0fb958`](https://togithub.com/minimistjs/minimist/commit/f0fb958e9a1fe980cdffc436a211b0bda58f621b)
- \[meta] create FUNDING.yml; add `funding` in package.json
[`3639e0c`](https://togithub.com/minimistjs/minimist/commit/3639e0c819359a366387e425ab6eabf4c78d3caa)
- \[meta] use `npmignore` to autogenerate an npmignore file
[`be2e038`](https://togithub.com/minimistjs/minimist/commit/be2e038c342d8333b32f0fde67a0026b79c8150e)
- Only apps should have lockfiles
[`282b570`](https://togithub.com/minimistjs/minimist/commit/282b570e7489d01b03f2d6d3dabf79cd3e5f84cf)
- isConstructorOrProto adapted from PR
[`ef9153f`](https://togithub.com/minimistjs/minimist/commit/ef9153fc52b6cea0744b2239921c5dcae4697f11)
- \[Dev Deps] update `@ljharb/eslint-config`, `aud`
[`098873c`](https://togithub.com/minimistjs/minimist/commit/098873c213cdb7c92e55ae1ef5aa1af3a8192a79)
- \[Dev Deps] update `@ljharb/eslint-config`, `aud`
[`3124ed3`](https://togithub.com/minimistjs/minimist/commit/3124ed3e46306301ebb3c834874ce0241555c2c4)
- \[meta] add `safe-publish-latest`
[`4b927de`](https://togithub.com/minimistjs/minimist/commit/4b927de696d561c636b4f43bf49d4597cb36d6d6)
- \[Tests] add `aud` in `posttest`
[`b32d9bd`](https://togithub.com/minimistjs/minimist/commit/b32d9bd0ab340f4e9f8c3a97ff2a4424f25fab8c)
- \[meta] update repo URLs
[`f9fdfc0`](https://togithub.com/minimistjs/minimist/commit/f9fdfc032c54884d9a9996a390c63cd0719bbe1a)
- \[actions] Avoid 0.6 tests due to build failures
[`ba92fe6`](https://togithub.com/minimistjs/minimist/commit/ba92fe6ebbdc0431cca9a2ea8f27beb492f5e4ec)
- \[Dev Deps] update `tape`
[`950eaa7`](https://togithub.com/minimistjs/minimist/commit/950eaa74f112e04d23e9c606c67472c46739b473)
- \[Dev Deps] add missing `npmignore` dev dep
[`3226afa`](https://togithub.com/minimistjs/minimist/commit/3226afaf09e9d127ca369742437fe6e88f752d6b)
- Merge tag 'v0.2.2'
[`980d7ac`](https://togithub.com/minimistjs/minimist/commit/980d7ac61a0b4bd552711251ac107d506b23e41f)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zMS40IiwidXBkYXRlZEluVmVyIjoiMzUuMzEuNCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants