diff --git a/akenza.yml b/akenza.yml index 3506ac0..ec97a45 100644 --- a/akenza.yml +++ b/akenza.yml @@ -4,6 +4,7 @@ description: Integrate with akenza logo-url: https://cdn.prod.akenza.io/images/logo/akenza-io-logo.svg info-url: https://app.akenza.io/ documentation-url: https://docs.akenza.io/get-started/your-integration/the-things-network +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/akenza/ fields: - id: uplink_secret name: Uplink Secret diff --git a/also-iot-platform.yml b/also-iot-platform.yml index 050a843..748bbc9 100644 --- a/also-iot-platform.yml +++ b/also-iot-platform.yml @@ -4,6 +4,7 @@ description: A commercial-ready IoT solution to deploy or resell to your custome logo-url: https://also.allthingstalk.com/assets/img/brand/also/logo-full-2-372baab0a0.svg info-url: https://www.allthingstalk.com/iot-also-resellers documentation-url: https://docs.allthingstalk.com/networks/use-the-things-network-v3/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/allthingstalk/ fields: - id: network_token name: Network token diff --git a/anyviz.yml b/anyviz.yml index 1fdd091..73283e7 100644 --- a/anyviz.yml +++ b/anyviz.yml @@ -4,6 +4,7 @@ description: Visualize, monitor and analyze data conveniently with AnyViz Cloud logo-url: https://cdn.anyviz.io/img/anyviz-logo.svg info-url: https://www.anyviz.io documentation-url: https://www.anyviz.io/the-things-industries/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/anyviz/ fields: - id: server_instance name: AnyViz instance diff --git a/attmaker.yml b/attmaker.yml index f6bb703..ba19ea1 100644 --- a/attmaker.yml +++ b/attmaker.yml @@ -4,6 +4,7 @@ description: Your accessible IoT Platform for rapid development logo-url: https://allthingstalk.blob.core.windows.net/public/AllThingsTalkMaker.png info-url: https://www.allthingstalk.com/maker documentation-url: https://docs.allthingstalk.com/networks/use-the-things-network-v3/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/allthingstalk/ fields: - id: network_token name: Network token diff --git a/bin/csv.js b/bin/csv.js index 2bb847b..7ec3388 100644 --- a/bin/csv.js +++ b/bin/csv.js @@ -18,6 +18,7 @@ const csvWriter = createObjectCsvWriter({ { id: 'name', title: 'Name' }, { id: 'description', title: 'Description' }, { id: 'documentationUrl', title: 'Documentation URL' }, + { id: 'stackDocumentationUrl', title: 'Stack Documentation URL' }, { id: 'format', title: 'Format' }, ] }); @@ -35,6 +36,7 @@ const readTemplateFile = (templateName) => { name: templateData.name, description: templateData.description, documentationUrl: templateData['documentation-url'], + stackDocumentationUrl: templateData['stack-documentation-url'], format: format, }; }; diff --git a/blockbax.yml b/blockbax.yml index 9224ee4..dedb3cf 100644 --- a/blockbax.yml +++ b/blockbax.yml @@ -4,6 +4,7 @@ description: Integrate with Blockbax logo-url: https://blockbax.com/images/logo-green.png info-url: https://blockbax.com/ documentation-url: https://blockbax.com/docs/integrations/the-things-network/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/blockbax/ fields: - id: token name: Blockbax access token diff --git a/cayenne.yml b/cayenne.yml index 9258501..6b6c75c 100644 --- a/cayenne.yml +++ b/cayenne.yml @@ -4,6 +4,7 @@ description: Drag-and-Drop IoT Project Builder logo-url: https://res.cloudinary.com/dctlrnwuz/image/upload/v1619483016/mydevices/cayenne-logo-mydevices.png info-url: https://developers.mydevices.com documentation-url: https://developers.mydevices.com/cayenne/docs +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/cayenne/ fields: - id: cliend_id name: Client ID diff --git a/cloudstudio.yml b/cloudstudio.yml index c51becd..952c6a3 100644 --- a/cloudstudio.yml +++ b/cloudstudio.yml @@ -4,6 +4,7 @@ description: Integrate with Cloud Studio IoT platform logo-url: https://www.cloud.studio/wp-content/uploads/2022/04/cloudstudio-logo-SVG-gradiente.svg info-url: https://www.cloud.studio/ documentation-url: https://wiki.cloud.studio/page/174 +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/cloudstudio/ fields: - id: server_instance name: Server instance diff --git a/daizy.yml b/daizy.yml index bad6e4b..d217a8d 100644 --- a/daizy.yml +++ b/daizy.yml @@ -4,6 +4,7 @@ description: Integrate with Daizy logo-url: https://daizy.io/wp-content/uploads/2021/03/Daizy-Logo-Positive.png info-url: https://daizy.io/ documentation-url: https://daizy.atlassian.net/servicedesk/customer/portals +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/daizy/ fields: - id: organisation_slug name: Organisation Slug diff --git a/datacake.yml b/datacake.yml index 91bd1f1..da847d3 100644 --- a/datacake.yml +++ b/datacake.yml @@ -4,6 +4,7 @@ description: Send data to Datacake via TTI adapter logo-url: https://cdn.datacake-k8s.com/public/tts/datacake-logo-tts@256w.png info-url: https://datacake.co/ documentation-url: https://docs.datacake.de/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/datacake/ fields: - id: token name: Token diff --git a/delmation.yml b/delmation.yml index 08cd6e9..0376a73 100644 --- a/delmation.yml +++ b/delmation.yml @@ -4,6 +4,7 @@ description: Send your sensor data to the Delmation IoT portal logo-url: https://delmation.nl/tts/images/logo.png info-url: https://delmation.nl/tti documentation-url: https://delmation.nl/tts/integrations/the-things-stack/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/delmation/ fields: - id: docksters_API_Key name: API Key diff --git a/dezem.yml b/dezem.yml index 51ecaf6..0b8bcaa 100644 --- a/dezem.yml +++ b/dezem.yml @@ -4,6 +4,7 @@ description: Integrate with the deZem data platform logo-url: https://www.dezem.de/typo3conf/ext/dezem/Resources/Public/Images/logo-dezem.svg info-url: https://www.dezem.de documentation-url: https://www.dezem.de/datenerfassung/lorawan/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/dezem/ fields: - id: api_key name: deZemAd API key diff --git a/homey.yml b/homey.yml index 165f6cc..59787cb 100644 --- a/homey.yml +++ b/homey.yml @@ -4,6 +4,7 @@ description: Integrate The Things Stack with your Homey info-url: https://homey.app logo-url: https://homey-logos.s3.eu-west-1.amazonaws.com/logos/256.png documentation-url: https://apps.developer.homey.app/cloud/webhooks#option-2-webhooks-using-key-path-properties +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/homey/ fields: - id: homey_webhookID name: Homey Webhook ID diff --git a/iot-factory.yml b/iot-factory.yml index 8a6e582..087440e 100644 --- a/iot-factory.yml +++ b/iot-factory.yml @@ -3,7 +3,6 @@ name: IoT Factory description: Smart Metering & Asset Tracking logo-url: https://iotfactory.eu/wp-content/uploads/2023/01/IOT-SmartCities-Smart-Solutions-in-Brussels.png info-url: https://iotfactory.eu/products/ - fields: - id: clientID name: Client ID diff --git a/iotinabox.yml b/iotinabox.yml index 3fc05b0..e8e9e1a 100644 --- a/iotinabox.yml +++ b/iotinabox.yml @@ -4,6 +4,7 @@ description: Plug-and-Play IoT Solutions logo-url: https://res.cloudinary.com/dctlrnwuz/image/upload/v1619483016/mydevices/iot-logo-mydevices.png info-url: https://mydevices.com documentation-url: https://mydevices.com/iotinabox/support +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/iotinabox/ fields: - id: x_subscription_key name: Subscription Key diff --git a/losant.yml b/losant.yml index a4e2b22..1e92837 100644 --- a/losant.yml +++ b/losant.yml @@ -4,6 +4,7 @@ description: Integrate with the Losant Enterprise IoT Platform logo-url: https://www.losant.com/hubfs/Logo/losant-logo-stack-01-03.png info-url: https://www.losant.com documentation-url: https://docs.losant.com/guides/how-to-integrate-with-the-things-stack/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/losant/ fields: - id: uniqueIdOfLosantWebhook name: Unique ID from the Losant Webhook URL diff --git a/mclimate.yml b/mclimate.yml index 1003168..87091d1 100644 --- a/mclimate.yml +++ b/mclimate.yml @@ -4,6 +4,7 @@ description: Integrate with MClimate logo-url: https://cdn.shopify.com/s/files/1/0043/8874/9379/files/mclimate-logo-crop.jpg?v=1639751590 info-url: https://mclimate.eu documentation-url: https://docs.mclimate.eu/mclimate-lorawan-devices/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/mclimate/ fields: - id: token name: M Token diff --git a/myiotopentech.yml b/myiotopentech.yml index 420a5dd..4f59a00 100644 --- a/myiotopentech.yml +++ b/myiotopentech.yml @@ -4,6 +4,7 @@ description: Open, free and neutral IoT Platform logo-url: https://web.iotopentech.io/images/myiot/logo_my_iot_open_tech_my_iot_legram.png info-url: https://www.doc.my.iotopentech.io/ documentation-url: https://www.doc.my.iotopentech.io//integrations/the-things-network.html +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/my-iot-open-tech/ fields: - id: token name: Control Device Token diff --git a/qubitro.yml b/qubitro.yml index c4a2394..76a407a 100644 --- a/qubitro.yml +++ b/qubitro.yml @@ -4,6 +4,7 @@ description: Send your data to Qubitro logo-url: https://cdn.qubitro.com/landing/qubitro_nav_logo.png info-url: https://www.qubitro.com/ documentation-url: https://docs.qubitro.com/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/qubitro/ fields: - id: project_id name: Project ID diff --git a/schema/lorawan_webhook_templates.go b/schema/lorawan_webhook_templates.go index 2a4e3ae..d53acd0 100644 --- a/schema/lorawan_webhook_templates.go +++ b/schema/lorawan_webhook_templates.go @@ -16,19 +16,20 @@ package schema // WebhookTemplate defines information about a Webhook Template for The Things Stack. type WebhookTemplate struct { - TemplateID string `yaml:"template-id"` - Name string `yaml:"name"` - Description string `yaml:"description"` - LogoURL string `yaml:"logo-url"` - InfoURL string `yaml:"info-url"` - DocumentationURL string `yaml:"documentation-url"` - BaseURL string `yaml:"base-url"` - Headers map[string]string `yaml:"headers,omitempty"` - Format string `yaml:"format"` - Fields []WebhookTemplateField `yaml:"fields,omitempty"` - CreateDownlinkAPIKey bool `yaml:"create-downlink-api-key"` - Paths WebhookTemplatePaths `yaml:"paths,omitempty"` - FieldMask []string `yaml:"field-mask,omitempty"` + TemplateID string `yaml:"template-id"` + Name string `yaml:"name"` + Description string `yaml:"description"` + LogoURL string `yaml:"logo-url"` + InfoURL string `yaml:"info-url"` + DocumentationURL string `yaml:"documentation-url"` + StackDocumentationURL string `yaml:"stack-documentation-url"` + BaseURL string `yaml:"base-url"` + Headers map[string]string `yaml:"headers,omitempty"` + Format string `yaml:"format"` + Fields []WebhookTemplateField `yaml:"fields,omitempty"` + CreateDownlinkAPIKey bool `yaml:"create-downlink-api-key"` + Paths WebhookTemplatePaths `yaml:"paths,omitempty"` + FieldMask []string `yaml:"field-mask,omitempty"` } // WebhookTemplatePaths defines optional paths for each upstream message type. diff --git a/schema/validate.go b/schema/validate.go index e23a3fb..672b5d4 100644 --- a/schema/validate.go +++ b/schema/validate.go @@ -140,6 +140,11 @@ func (t WebhookTemplate) Validate() error { return fmt.Errorf("documentation-url is not valid: %w", err) } } + if t.StackDocumentationURL != "" { + if err := testURL(t.StackDocumentationURL); err != nil { + return fmt.Errorf("stack-documentation-url is not valid: %w", err) + } + } if !validIdentifierRegex.MatchString(t.Format) { return fmt.Errorf("%q is not a valid format", t.Format) } diff --git a/tagoio.yml b/tagoio.yml index 9754364..07b6b22 100644 --- a/tagoio.yml +++ b/tagoio.yml @@ -4,6 +4,7 @@ description: Integrate with TagoIO logo-url: https://partners.sigfox.com/assets/logo-for/5acccca69bffaf0001201a45 info-url: https://tago.io/ documentation-url: https://community.tago.io/t/how-to-integrate-tagoio-with-ttn-v3/374 +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/tagoio/ fields: - id: auth name: Authorization diff --git a/telemetry2u.yml b/telemetry2u.yml index 0b9d41d..649c0be 100644 --- a/telemetry2u.yml +++ b/telemetry2u.yml @@ -4,6 +4,7 @@ description: Telemetry2U IoT dashboard and alert system integration logo-url: https://telemetry2u.com/images/logo-telemetry2u.svg info-url: https://telemetry2u.com/ documentation-url: https://telemetry2u.com/Documentation/lorawan-iot-platform-registration-help +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/telemetry2u/ fields: - id: token name: Telemetry2U Token diff --git a/tellsens.yml b/tellsens.yml index 4e964ea..2cf70d7 100644 --- a/tellsens.yml +++ b/tellsens.yml @@ -4,6 +4,7 @@ description: View your sensor data in maps/geofences and other services. logo-url: https://s3.amazonaws.com/appforest_uf/f1643808001788x630735149516113200/tellsens-logo.PNG info-url: https://www.tellsens.io documentation-url: https://www.tellsens.io/docs +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/tellsens/ fields: - id: apikey name: tellsens.io API Key diff --git a/thethingsio.yml b/thethingsio.yml index 19a3129..f5d9d9a 100644 --- a/thethingsio.yml +++ b/thethingsio.yml @@ -4,6 +4,7 @@ description: Integrate with thethings.iO logo-url: https://thethings.io/wp-content/uploads/2017/03/Logo-2.jpg info-url: https://thethings.io/ documentation-url: https://developers.thethings.io/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/thethingsio/ fields: - id: productID name: Product ID diff --git a/thingerio.yml b/thingerio.yml index cd29ebd..eccb3f2 100644 --- a/thingerio.yml +++ b/thingerio.yml @@ -4,6 +4,7 @@ description: Integrate with Thinger.io Platform logo-url: https://s3.eu-west-1.amazonaws.com/thinger.io.files/logos/thinger_logo_black/thinger_logo_black.png info-url: https://thinger.io documentation-url: https://docs.thinger.io/plugins/the-things-stack +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/thinger-io/ fields: - id: server_instance name: Thinger.io instance diff --git a/thingspeak.yml b/thingspeak.yml index 9ba9a29..954af80 100644 --- a/thingspeak.yml +++ b/thingspeak.yml @@ -4,6 +4,7 @@ description: Send data to ThingSpeak channel logo-url: https://brands.home-assistant.io/_/thingspeak/logo.png info-url: https://thingspeak.com/ documentation-url: https://www.mathworks.com/help/thingspeak/index.html +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/thingspeak/ fields: - id: channelid name: Channel ID diff --git a/ttnmapper.yml b/ttnmapper.yml index 3d4bbff..7b7b747 100644 --- a/ttnmapper.yml +++ b/ttnmapper.yml @@ -4,6 +4,7 @@ description: Contribute data for coverage and signal analysis logo-url: https://ttnmapper.org/resources/TTNMapper.svg info-url: https://ttnmapper.org documentation-url: https://docs.ttnmapper.org/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/ttnmapper/ fields: - id: email name: Email address diff --git a/ubidots-plugin.yml b/ubidots-plugin.yml index 796fa6f..2899daf 100644 --- a/ubidots-plugin.yml +++ b/ubidots-plugin.yml @@ -4,6 +4,7 @@ description: Integrate with Ubidots using Plugins logo-url: https://res.cloudinary.com/di2vaxvhl/image/upload/v1622207170/Ubidots%20logos/logo-ubi-png.png info-url: https://ubidots.com/ documentation-url: https://help.ubidots.com/en/articles/5096476-plugins-connect-the-things-stack-to-ubidots +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/ubidots/ fields: - id: plugin_id name: Plugin ID diff --git a/uib.yml b/uib.yml index 80cf60e..c651b8c 100644 --- a/uib.yml +++ b/uib.yml @@ -4,6 +4,7 @@ description: Simply communicate logo-url: https://uibai.s3.eu-central-1.amazonaws.com/uib.png info-url: https://uib.ai/ documentation-url: https://uib.ai/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/uib/ fields: - id: phone_number name: Receiver Phone Number(s) diff --git a/unaconnect.yml b/unaconnect.yml index e5878ed..122fee7 100644 --- a/unaconnect.yml +++ b/unaconnect.yml @@ -10,6 +10,7 @@ fields: logo-url: https://www.unabiz.com/wp-content/uploads/2019/11/cropped-unabiz-logox350-opt.png info-url: https://www.unabiz.com documentation-url: https://docs.unaconnect.io +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/unaconnect/ format: json headers: {} create-downlink-api-key: false diff --git a/widgelix.yml b/widgelix.yml index 21dd2e2..cb319a0 100644 --- a/widgelix.yml +++ b/widgelix.yml @@ -4,6 +4,7 @@ description: Integrate with Widgelix logo-url: https://app.widgelix.com/cdn/app.widgelix.com/logo.png info-url: https://app.widgelix.com/ documentation-url: https://docs.widgelix.com/ +stack-documentation-url: https://www.thethingsindustries.com/docs/integrations/cloud-integrations/widgelix/ fields: - id: apiKey name: API Key