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

Fetch kintone space settings #2

Open
the-red opened this issue Dec 7, 2017 · 3 comments
Open

Fetch kintone space settings #2

the-red opened this issue Dec 7, 2017 · 3 comments

Comments

@the-red
Copy link
Member

the-red commented Dec 7, 2017

現状アプリごとの設定しか取れていないが、
スペースごとの設定も取れるようにしたい。
スペース本文にマニュアル書いたりアプリへのリンク貼ったりすることも多いので。
https://developer.cybozu.io/hc/ja/articles/202166200

問題は、ディレクトリ構成をどうするか。

  • 現在のアプリID毎のフォルダと同列にスペース毎のフォルダを作成
    • アプリIDとスペースIDが被る可能性もあるが命名規則は?
  • スペース毎のフォルダを作成し、スペース所属アプリのフォルダを内包
    • -aオプションを指定しなくてもスペース内の全アプリを自動取得?

スペース使わずにアプリ情報だけを取りたい場合もあるので、
変に複雑にして既存の使い方ができなくなるのは困る。
既存の使い方が維持できることは必須。その上でどうすべきか?

@the-red
Copy link
Member Author

the-red commented Jan 7, 2018

前者は、この二択かな。

  • space10 みたいに接頭語を必ずつける
  • ID番号が被ったらエラーにする
    アプリ名・スペース名をginuercに任意に定義できるようになれば、
    自分で重複しない名前を定義できるので、そっちの実装が先か。
    Make directory not only by app ID but also by app name #10

後者は、boolean型の —all-apps みたいなオプション用意して
それがtrueだと内包する全アプリ取得、
falseだと個別アプリIDの指定が必要
って感じが良いかな。

@the-red
Copy link
Member Author

the-red commented Jan 26, 2018

スペース内アプリの一括取得はapps.jsonが便利そう。
これは今のginueからは叩いてないAPIですな。
https://developer.cybozu.io/hc/ja/articles/202931674-%E3%82%A2%E3%83%97%E3%83%AA%E6%83%85%E5%A0%B1%E3%81%AE%E5%8F%96%E5%BE%97#step2

@the-red
Copy link
Member Author

the-red commented Mar 12, 2021

これ、再検討始める。
ginuercに設定書くならこんな感じかなー。

module.exports = {
  location: 'kintone-settings',
  env: {
    development: {
      domain: 'example2.cybozu.com',
      space: {
        id: 32,
        partial: true,
      },
      app: {
        order: 1024,
        billing: 2048,
      },
    },
  },
  production: {
    domain: 'example1.cybozu.com',
    space: {
      id: 5,
      partial: false, // default、省略可
      exclude: [789],
    },
    app: {
      order: 123,
      billing: 456,
    },
  },
}

envごとにスペース情報を1つ持つように縛っちゃって良いと思う。
env内に色んなスペースのアプリが混在する場合は、スペース指定しなければ良い。

上の方で検討してた「スペースIDをフォルダ名にする云々」は、
env, locationで代替できるので、spaceプロパティ内はフォルダ名に影響しない。

デフォルトはスペース内の全アプリを取得。
appを書かなければアプリIDで取得するし、
appを書くなら、スペース内の全アプリを書かなければいけない。
(不足してるアプリがあればpull時にエラーを出す)

オプションpartial: trueを入れると、appが必須になって、
スペース内であろうとappに列挙したものだけをpullするようになる。
スペース外のアプリも指定できるようになる。
(実質spaceを定義していないのと同じ動き)

オプションexclude: []は、partial: falseの場合とセットで使う。
excludeに指定したアプリIDはpullしないようになり、
app内に名前を書かなくてもエラーを出さないようにする。

これで、スペース内に新アプリを作ったときのpull漏れがなくなるはず。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant