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