diff --git a/.gitignore b/.gitignore index 346d8b9..acd772f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ !.yarn/sdks node_modules .next +.env \ No newline at end of file diff --git a/pages/index.mdx b/pages/index.mdx index dfa5c9b..e1b8d50 100644 --- a/pages/index.mdx +++ b/pages/index.mdx @@ -7,27 +7,27 @@ import {Code} from '../components/code'; import Link from 'next/link'; # Datalink -Datalink is a tool that helps to provide Roblox Developers with critical & detailed analysis surrounding both Player & Game state & data in a Roblox Experience +Datalink is a tool that helps to provide Roblox Developers with critical & detailed analysis surrounding both Player & Game state & data in a Roblox Experience. ## Product Summary -Datalink should provide a suite of interfaces which help to destinguish and expose information regarding state, health, mobility, player data + more; +Datalink will provide a suite of interfaces which help to destinguish and expose information regarding state, health, mobility, player data + more. A portion of what we have planned is listed below: - Game/Experience State - State is defined by the contextual agreement surrounding a servers ability to perform, allow users to join, remove and update datastores. - - For example, The State field could include; + - For example, The State field could include: - Servers Per `Hour`, `Day`, `Month`, `Annum`

- Game/Experience Health - Health is defined by how much CPU, Memory, Processing Time is being taken up by the server. - - Additionally, we can look further and provide feedback regarding player crashing rates, reproduction steps on how these players might of crashed and potential fixes if any are obvious + - Additionally, we can look further and provide feedback regarding player crashing rates, reproduction steps on how these players might of crashed and potential fixes if any are common.

- Data - - Data includes all kinds of information regading the places inside of your Roblox Experience + - Data includes all kinds of information regading the places inside of your Roblox Experience. - Custom Developer Events will also be counted under this field, as we are unable to process specifics in your events.

- So, so much more! - We're still yet and looking into providing so much more which'll help improve the scalability of your experience! - - Some examples of what we're planning to Ship Datalink with are; + - Some other examples of what we're planning to ship datalink including are: - Fast/Feature Flags - DataStore, MemoryStore & MessagingService wrappers - Game Event Controllers @@ -42,4 +42,4 @@ The [LuaU SDK](https://docs.datalink.dev/sdks/installation) is designed to simpl > RESTful APIs -The [RESTful API](https://docs.datalink.dev/reference/api_reference/overview) is the backend to the Datalink service, if you've chosen to write your own wrapper/module for the Datalink service, then taking advantage of these APIs will be of interest. \ No newline at end of file +The [RESTful API](https://docs.datalink.dev/reference/api_reference/overview) is the backend to the Datalink service, if you've chosen to write your own wrapper/module for the Datalink service, then taking advantage of these APIs will be of interest. diff --git a/pages/sdks/sdk/authentication.mdx b/pages/sdks/sdk/authentication.mdx index b2938d8..f148e0a 100644 --- a/pages/sdks/sdk/authentication.mdx +++ b/pages/sdks/sdk/authentication.mdx @@ -28,9 +28,11 @@ end):catch(warn) ``` + - Please ensure that the following are **NOT** exposed to the client; + Please ensure that the Authentication Key is **NOT** exposed to the client as this would provide an attacker **full, unrestricted** access to your experience's data. + - - Authentication Key - - This key would allow an attacker **FULL ACCESS** to your experiences data + + A recommended method to safeguard your API Key is to store it in a private and secure `DataStore`. diff --git a/pages/sdks/sdk/methods/authenticateAsync.mdx b/pages/sdks/sdk/methods/authenticateAsync.mdx index b5d3a48..fb9af43 100644 --- a/pages/sdks/sdk/methods/authenticateAsync.mdx +++ b/pages/sdks/sdk/methods/authenticateAsync.mdx @@ -1,6 +1,6 @@ --- -title: Authenticating using the Server Side SDK -description: Guide to using Datalink's server-side Lua SDK +title: Authentication +description: Datalink Authentication --- import {Code} from '../../../../components/code'; @@ -8,8 +8,21 @@ import Callout from 'nextra-theme-docs/callout'; # authenticateAsync +Primary resource used in authenticating the SDK + ```lua +local DatalinkSDK = require(Path.To.DatalinkSDK) +local DatalinkInstance = DatalinkSDK.new({ + datalinkUserAccountId = YOUR_ACCOUNT_ID, + datalinkUserToken = YOUR_ACCOUNT_TOKEN +}) + +DatalinkInstance:authenticateAsync():andThen(function() + print('Hello from Datalink!') +end) +``` +```typescript ``` \ No newline at end of file diff --git a/pages/sdks/sdk/methods/fireCustomEvent.mdx b/pages/sdks/sdk/methods/fireCustomEvent.mdx new file mode 100644 index 0000000..c360b95 --- /dev/null +++ b/pages/sdks/sdk/methods/fireCustomEvent.mdx @@ -0,0 +1,49 @@ +--- +title: FireCustomEvent - Method +description: Invoke a custom datalink event over to the dashboard! +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# fireCustomEvent + +This method is used to invoke a custom developer event, a custom event allows the developer to send whatever information they would like to send over to the Datalink Service. + +## Parameters + +#### eventName: String + +The `eventName` parameter should be used to define the name of the custom event the developer would like to invoke. + +#### eventParameters: Dictionary ( [string]: [datatype](https://www.tutorialspoint.com/lua/lua_data_types.htm) ) + +The `eventParameters` parameter should be defined as a dictionary which contains the parameters the developer would like to attach to the custom event. + +## Example + + +```lua +local DatalinkSDK = require(Path.To.DatalinkSDK) +local DatalinkInstance = DatalinkSDK.new({ + datalinkUserAccountId = YOUR_ACCOUNT_ID, + datalinkUserToken = YOUR_ACCOUNT_TOKEN +}) + +DatalinkInstance:authenticateAsync():andThen(function() + DatalinkInstance:fireCustomEvent( + "MyEventName", { + ["MyEventParameter"] = "PlayerExperience", + ["MyEventValue"] = Player.Experience + } + ) +end) +``` +```typescript + +``` + + + + The above is just an **EXAMPLE** of what you're enabled to do with Datalink - you're able to send a lot more than just player information into the dashboard! + \ No newline at end of file diff --git a/pages/sdks/sdk/methods/invokeEventAsync.mdx b/pages/sdks/sdk/methods/fireEconomyEvent.mdx similarity index 92% rename from pages/sdks/sdk/methods/invokeEventAsync.mdx rename to pages/sdks/sdk/methods/fireEconomyEvent.mdx index 87b1792..c1d6067 100644 --- a/pages/sdks/sdk/methods/invokeEventAsync.mdx +++ b/pages/sdks/sdk/methods/fireEconomyEvent.mdx @@ -6,7 +6,7 @@ description: Guide to using Datalink's server-side Lua SDK import {Code} from '../../../../components/code'; import Callout from 'nextra-theme-docs/callout'; -# invokeEventAsync +# fireEconomyEvent ```lua diff --git a/pages/sdks/sdk/methods/fireProgressionEvent.mdx b/pages/sdks/sdk/methods/fireProgressionEvent.mdx new file mode 100644 index 0000000..c373587 --- /dev/null +++ b/pages/sdks/sdk/methods/fireProgressionEvent.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# fireProgressionEvent + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/methods/getAllFastFlagsAsync.mdx b/pages/sdks/sdk/methods/getAllFastFlagsAsync.mdx new file mode 100644 index 0000000..4294067 --- /dev/null +++ b/pages/sdks/sdk/methods/getAllFastFlagsAsync.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# getAllFastFlagsAsync + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/methods/getAllGameLogsAsync.mdx b/pages/sdks/sdk/methods/getAllGameLogsAsync.mdx new file mode 100644 index 0000000..da9ec25 --- /dev/null +++ b/pages/sdks/sdk/methods/getAllGameLogsAsync.mdx @@ -0,0 +1,41 @@ +--- +title: GetAllGameLogsAsync - Method +description: Get all game logs relative to the current place. +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# getAllGameLogsAsync + +This method is used to retrieve all game logs for this expereince under the Datalink Service + +## Example + + +```lua +local DatalinkSDK = require(Path.To.DatalinkSDK) +local DatalinkInstance = DatalinkSDK.new({ + datalinkUserAccountId = YOUR_ACCOUNT_ID, + datalinkUserToken = YOUR_ACCOUNT_TOKEN +}) + +DatalinkInstance:authenticateAsync():andThen(function() + DatalinkInstance:getAllGameLogsAsync():andThen(function(gameLogs) + if not gameLogs[1] then + return + end + + print(gameLogs[1]) --[[{ + ["id"] = 1, + ["type"] = "Error", + ["trace"] = "erroringFunction()", + ["message"] = "Attempted to index nil" + }]]-- + end) +end) +``` +```typescript + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/methods/getGameLogAsync.mdx b/pages/sdks/sdk/methods/getGameLogAsync.mdx new file mode 100644 index 0000000..cb164c5 --- /dev/null +++ b/pages/sdks/sdk/methods/getGameLogAsync.mdx @@ -0,0 +1,47 @@ +--- +title: getGameLogAsync - Method +description: Get a game log relative to the current place. +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# getGameLogAsync + +This method is used to retrieve a specific game log for this expereince under the Datalink Service. + +## Parameters + +#### logId: Number + +The `logId` parameter should be used to get details on a specific log object. + +## Example + + +```lua +local DatalinkSDK = require(Path.To.DatalinkSDK) +local DatalinkInstance = DatalinkSDK.new({ + datalinkUserAccountId = YOUR_ACCOUNT_ID, + datalinkUserToken = YOUR_ACCOUNT_TOKEN +}) + +DatalinkInstance:authenticateAsync():andThen(function() + DatalinkInstance:getGameLogAsync(422):andThen(function(gameLogObject) + print(gameLogObject) --[[{ + ["id"] = 422, + ["type"] = "Error", + ["trace"] = "erroringFunction()", + ["message"] = "Attempted to index nil" + }]]-- + end) +end) +``` +```typescript + +``` + + + + An example of why you might want to use this functionality, this feature enables a developer to display logs & errors on a dashboard in-game. + \ No newline at end of file diff --git a/pages/sdks/sdk/methods/getLocalVariable.mdx b/pages/sdks/sdk/methods/getLocalVariable.mdx new file mode 100644 index 0000000..c8bceec --- /dev/null +++ b/pages/sdks/sdk/methods/getLocalVariable.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# getLocalVariable + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/methods/getLocalVariables.mdx b/pages/sdks/sdk/methods/getLocalVariables.mdx new file mode 100644 index 0000000..c124559 --- /dev/null +++ b/pages/sdks/sdk/methods/getLocalVariables.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# getLocalVariables + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/methods/getPlayerHash.mdx b/pages/sdks/sdk/methods/getPlayerHash.mdx new file mode 100644 index 0000000..93dc6e6 --- /dev/null +++ b/pages/sdks/sdk/methods/getPlayerHash.mdx @@ -0,0 +1,49 @@ +--- +title: GetPlayerHash - Method +description: Get Datalink anonimized player hashes +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# getPlayerHash + +This method should be used to get the hash assigned to a player, this hash is generated via a sha256 algorithm & provides a way to link specific data to a player anonymously + +## Parameters + +#### player: Player + +The `player` parameter is pretty self explanitory, the player you want to get the hash of + +## Example + + +```lua +local DatalinkSDK = require(Path.To.DatalinkSDK) +local DatalinkInstance = DatalinkSDK.new({ + datalinkUserAccountId = YOUR_ACCOUNT_ID, + datalinkUserToken = YOUR_ACCOUNT_TOKEN +}) + +DatalinkInstance:authenticateAsync():andThen(function() + DatalinkInstance:fireCustomEvent( + "playerDrivenEvent", { + ["playerHash"] = DatalinkInstance:getPlayerHash(player), + ["playerEvent"] = "PlayerPartyStarted", + ["playerInvites"] = { + DatalinkInstance:getPlayerHash(playerThatWasInvited) + } + } + ) +end) +``` +```typescript + +``` + + + + It's important that you keep the data sent to datalink anonymous. + Datalink is an anonymous data-driven platform — please respect our mission. + \ No newline at end of file diff --git a/pages/sdks/sdk/methods/isAuthenticated.mdx b/pages/sdks/sdk/methods/isAuthenticated.mdx index e59ffe7..d182ccb 100644 --- a/pages/sdks/sdk/methods/isAuthenticated.mdx +++ b/pages/sdks/sdk/methods/isAuthenticated.mdx @@ -1,15 +1,31 @@ --- -title: Authenticating using the Server Side SDK -description: Guide to using Datalink's server-side Lua SDK +title: isAuthenticated - Method +description: Datalink authentication validation --- import {Code} from '../../../../components/code'; import Callout from 'nextra-theme-docs/callout'; -# IsAuthenticated +# isAuthenticated + +Primary resource for acknowledging if the SDK is or is not authenticated ```lua +local DatalinkSDK = require(Path.To.DatalinkSDK) +local DatalinkInstance = DatalinkSDK.new({ + datalinkUserAccountId = YOUR_ACCOUNT_ID, + datalinkUserToken = YOUR_ACCOUNT_TOKEN +}) + +local isDatalinkAuthenticated = DatalinkInstance:isAuthenticated() + +if not isDatalinkAuthenticated then + ... +end +``` +```typescript + ``` \ No newline at end of file diff --git a/pages/sdks/sdk/methods/meta.json b/pages/sdks/sdk/methods/meta.json index 8d79943..47d6097 100644 --- a/pages/sdks/sdk/methods/meta.json +++ b/pages/sdks/sdk/methods/meta.json @@ -1,7 +1,17 @@ { "isAuthenticated": ":isAuthenticated", "authenticateAsync": ":authenticateAsync", - "getFastFlagAsync": ":getFastFlagAsync", + "fireCustomEvent": ":fireCustomEvent", + "fireEconomyEvent": ":fireEconomyEvent", + "fireProgressionEvent": ":fireProgressionEvent", "getFastIntAsync": ":getFastIntAsync", - "invokeEventAsync": ":invokeEventAsync" + "getFastFlagAsync": ":getFastFlagAsync", + "getAllFastFlagsAsync": ":getAllFastFlagsAsync", + "getAllGameLogsAsync": ":getAllGameLogsAsync", + "getGameLogAsync": ":getGameLogAsync", + "setVerboseLogging": ":setVerboseLogging", + "setLocalVariable": ":setLocalVariable", + "getLocalVariable": ":getLocalVariable", + "getLocalVariables": ":getLocalVariables", + "getPlayerHash": ":getPlayerHash" } \ No newline at end of file diff --git a/pages/sdks/sdk/methods/setLocalVariable.mdx b/pages/sdks/sdk/methods/setLocalVariable.mdx new file mode 100644 index 0000000..cd9ded0 --- /dev/null +++ b/pages/sdks/sdk/methods/setLocalVariable.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# setLocalVariable + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/methods/setVerboseLogging.mdx b/pages/sdks/sdk/methods/setVerboseLogging.mdx new file mode 100644 index 0000000..a9d7153 --- /dev/null +++ b/pages/sdks/sdk/methods/setVerboseLogging.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# setVerboseLogging + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/properties/branch.mdx b/pages/sdks/sdk/properties/branch.mdx new file mode 100644 index 0000000..2fc75df --- /dev/null +++ b/pages/sdks/sdk/properties/branch.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# Branch + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/properties/meta.json b/pages/sdks/sdk/properties/meta.json index 6f31cf5..65355b3 100644 --- a/pages/sdks/sdk/properties/meta.json +++ b/pages/sdks/sdk/properties/meta.json @@ -1 +1,4 @@ -{ } \ No newline at end of file +{ + "branch": ".Branch", + "version": ".Version" +} \ No newline at end of file diff --git a/pages/sdks/sdk/properties/version.mdx b/pages/sdks/sdk/properties/version.mdx new file mode 100644 index 0000000..8910c58 --- /dev/null +++ b/pages/sdks/sdk/properties/version.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# Version + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/signals/meta.json b/pages/sdks/sdk/signals/meta.json index c8a6b2d..6f310a3 100644 --- a/pages/sdks/sdk/signals/meta.json +++ b/pages/sdks/sdk/signals/meta.json @@ -1,3 +1,8 @@ { - "onAuthenticated": ".onAuthenticated" + "onAuthenticated": ".onAuthenticated", + "onDaemonStarted": ".onDaemonStarted", + "onDaemonStopped": ".onDaemonStopped", + "onMessageRequestFail": ".onMessageRequestFail", + "onMessageRequestSent": ".onMessageRequestSent", + "onThrottled": ".onThrottled" } \ No newline at end of file diff --git a/pages/sdks/sdk/signals/onDaemonStarted.mdx b/pages/sdks/sdk/signals/onDaemonStarted.mdx new file mode 100644 index 0000000..8555c8d --- /dev/null +++ b/pages/sdks/sdk/signals/onDaemonStarted.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# onDaemonStarted + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/signals/onDaemonStopped.mdx b/pages/sdks/sdk/signals/onDaemonStopped.mdx new file mode 100644 index 0000000..210ca27 --- /dev/null +++ b/pages/sdks/sdk/signals/onDaemonStopped.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# onDaemonStopped + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/signals/onMessageRequestFail.mdx b/pages/sdks/sdk/signals/onMessageRequestFail.mdx new file mode 100644 index 0000000..c1d0d62 --- /dev/null +++ b/pages/sdks/sdk/signals/onMessageRequestFail.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# onMessageRequestFail + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/signals/onMessageRequestSent.mdx b/pages/sdks/sdk/signals/onMessageRequestSent.mdx new file mode 100644 index 0000000..cd83dcc --- /dev/null +++ b/pages/sdks/sdk/signals/onMessageRequestSent.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# onMessageRequestSent + + +```lua + +``` + \ No newline at end of file diff --git a/pages/sdks/sdk/signals/onThrottled.mdx b/pages/sdks/sdk/signals/onThrottled.mdx new file mode 100644 index 0000000..bd669a2 --- /dev/null +++ b/pages/sdks/sdk/signals/onThrottled.mdx @@ -0,0 +1,15 @@ +--- +title: Authenticating using the Server Side SDK +description: Guide to using Datalink's server-side Lua SDK +--- + +import {Code} from '../../../../components/code'; +import Callout from 'nextra-theme-docs/callout'; + +# onThrottled + + +```lua + +``` + \ No newline at end of file