
Research
Using Trusted Protocols Against You: Gmail as a C2 Mechanism
Socket uncovers malicious packages on PyPI using Gmail's SMTP protocol for command and control (C2) to exfiltrate data and execute commands.
kintone CLI for development & deployment, with Developer Experience.
Enjoy type-safe and repository-centric development!
This is an unstable pre-release
kdx/helpers
library codes.npm install -g kdx
# clone a template
git clone https://github.com/shellyln/kdx-project-template.git MyProject
cd MyProject
rm -rf .git/
git init
npm install
# configure
vi .env
vi meta/meta-info.json
# first pull and push
kdx pull MyApp1
npm run build
kdx push MyApp1 --force
# debug app
npm run serve:MyApp1
# first commit
git add .
git commit -m "initial commit"
See also: https://github.com/shellyln/kdx-project-template
kdx - kintone CLI for development & deployment, with Developer Experience
kdx <Subcommand> <AppName> [--force]
kdx <Subcommand> --all [--force]
kdx switch <profile>
Subcommands:
compile-schema : Generate definition and validation codes from schema/*.tss info.
gen-schema : Generate definition and validation codes from meta/**/*.json info.
fetch : Fetch from kintone, but no code generation is performed.
push : Push to kintone.
pull : Pull from kintone, and perform code generation.
switch : Switch target profile (e.g. development, staging, production).
Update .env and re-generate AppID enum.
help : Show this help.
kdx pull <AppName>
kdx pull --all
kdx push <AppName>
kdx pull --all
kdx push <AppName> --force
Similar to pull
, but no code generation is performed.
kdx fetch <AppName>
kdx fetch --all
meta/**/*.json
infokdx gen-schema <AppName>
kdx gen-schema --all
schema/*.tss
infoSimilar to gen-schema
, but it uses pre-generated schema/*.tss
.
kdx compile-schema <AppName>
kdx compile-schema --all
kdx switch <ProfileName>
TARGET = development
KINTONE_URL_development = https://XXXXXXXX.cybozu.com
KINTONE_USERNAME_development = XXXXXXXXXXXXXXXXXXXXXXXXXX
KINTONE_PASSWORD_development = XXXXXXXXXXXXXXXXXXXXXXXXXX
KINTONE_URL_staging = https://XXXXXXXX.cybozu.com
KINTONE_USERNAME_staging = XXXXXXXXXXXXXXXXXXXXXXXXXX
KINTONE_PASSWORD_staging = XXXXXXXXXXXXXXXXXXXXXXXXXX
KINTONE_URL_production = https://XXXXXXXX.cybozu.com
KINTONE_USERNAME_production = XXXXXXXXXXXXXXXXXXXXXXXXXX
KINTONE_PASSWORD_production = XXXXXXXXXXXXXXXXXXXXXXXXXX
{
"apps": {
"foo": { // <- App name
"development": { // <- Target profile
"appId": 38, // <- App id
"preview": false
},
"staging": {
"appId": 22,
"guestSpaceId": 10,
"preview": false
},
"production": {
"appId": 43,
"guestSpaceId": 10,
"preview": true
}
},
"bar": {
"development": {
"appId": 44,
"guestSpaceId": 5,
"preview": false
},
"staging": {
"appId": 22,
"guestSpaceId": 10,
"preview": false
},
"production": {
"appId": 43,
"guestSpaceId": 10,
"preview": true
}
}
}
}
views.json
will re-generate from this file.{
"Qwerty": { // <- View name
"view": {
"type": "CUSTOM",
"filterCond": "",
"sort": "Record_number desc",
"index": "0",
"html": "<div>Hello, World!</div>",
"pager": true,
"device": "ANY"
},
"development": { // <- Target profile
"id": "5123450",
"name": "View 1"
},
"staging": {
"id": "5123451",
"name": "View 1"
},
"production": {
"id": "5123452",
"name": "View 1"
}
},
"5123456": {
"view": {
"type": "LIST",
"filterCond": "",
"sort": "Record_number desc",
"index": "1",
"fields": [
"Record_number",
"Text",
"Created_by",
"Created_datetime"
]
},
"development": {
"id": "5123456",
"name": "View 2"
}
},
"5123457": {
"view": {
"type": "LIST",
"filterCond": "",
"sort": "Record_number desc",
"index": "2",
"fields": [
"Record_number",
"Text",
"Created_by",
"Created_datetime"
]
},
"development": {
"id": "5123457",
"name": "View 3"
}
},
"5123458": {
"view": {
"type": "CALENDAR",
"filterCond": "",
"sort": "Record_number desc",
"index": "3",
"date": "Updated_datetime",
"title": "Text"
},
"development": {
"id": "5123458",
"name": "View 4"
}
}
}
customize.json
will re-generate from this file.{
"js": [
{
"name": "react.production.min.js",
"target": ["desktop", "mobile"],
"file": "https://cdnjs.cloudflare.com/ajax/libs/react/16.13.0/cjs/react.production.min.js"
},
{
"name": "bbb.js",
"target": ["desktop", "mobile"],
"file": {
"development": "https://localhost:8034/index.js", // URL
"staging": "project:bin/apps/foo/index.js", // Upload the project local file
"production": "project:bin/apps/foo/index.js"
}
},
{
"name": "ddd.js",
"target": ["desktop", "mobile"],
"file": {
"development": "filekey:2020XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", // Keep the file uploaded by Web Settings console
"staging": "project:bin/apps/foo/ddd.js",
"production": "project:bin/apps/foo/ddd.js"
}
}
],
"css": [
{
"name": "aaa.css",
"target": ["desktop", "mobile"],
"file": "project:static-resources/aaa.css"
},
{
"name": "ccc.css",
"target": ["desktop", "mobile"],
"file": {
"development": "https://localhost:8034/index.css",
"staging": "project:bin/apps/foo/index.css",
"production": "project:bin/apps/foo/index.css"
}
}
]
}
MIT
Copyright (c) 2020 Shellyl_N and Authors
FAQs
kintone CLI for development & deployment, with Developer Experience
The npm package kdx receives a total of 6 weekly downloads. As such, kdx popularity was classified as not popular.
We found that kdx demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious packages on PyPI using Gmail's SMTP protocol for command and control (C2) to exfiltrate data and execute commands.
Product
We redesigned Socket's first logged-in page to display rich and insightful visualizations about your repositories protected against supply chain threats.
Product
Automatically fix and test dependency updates with socket fix—a new CLI tool that turns CVE alerts into safe, automated upgrades.