ContributionsMost RecentMost LikesSolutionsRe: editable content in react or handlebars component There is not any good OOB way to do that. I had experimented with creating a Handlebars editor in React, and it is a bit complicated depending on how fancy you want to get. I used the @monaco-editor/react package for the editor (monaco being the underlying editor used for VS Code). However, this isn't currently supported by the SDK (not an approved dependency), so this wouldn't work in production code for now. Then there's a couple GraphQL queries/mutations you can use to get and save the components. query GetComponents { components(markupLanguages: [HANDLEBARS], grouping: [CUSTOM]){ id template{ id style content defaults { config { applicablePages description } props { id } } components{ id } } } } mutation SaveComponent($id: String!, $componentId: String!, $content: String!, $applicablePages: [ComponentPageScope!]!, $description: String!) { createOrUpdateComponentTemplate(templateInput:{ id: $id markupLanguage: HANDLEBARS content: $content defaults: { config:{ applicablePages: $applicablePages description: $description } props:[] } components:{ id: $componentId } grouping: CUSTOM }) { result { id content } errors { __typename ... on NoComponentsError { message fields } ... on InvalidComponentTemplateIdError { message fields } ... on NoDefaultComponentError { message fields } ... on ComponentTemplateContentCannotBeSavedError { message fields } ... on CreateOrUpdateComponentTemplateFailedError { message fields templateId } ... on ValidationError { message fields key } ... on Error { fields message } ... on ErrorWithArgs { fields message } } } } Re: editable content in react or handlebars component You can add properties to a component to allow simple configuration. For example, the following component json: { "id" : "Announcement", "markupLanguage" : "HANDLEBARS", "defaults" : { "config" : { "applicablePages" : [ ], "description" : "", "fetchedContent" : null }, "props" : [ { "id" : "announcement_text", "dataType" : "STRING", "list" : false, "label" : "Announcement Text", "description" : "Announcement text to display", "control" : "INPUT" } ] }, "components" : [ { "id" : "custom.widget.Announcement" } ], "grouping" : "CUSTOM", "scriptGroups" : null, "aboutThis" : null } Adds a simple input box to the component settings in designer where an Admin can add announcement text. I handlebars, I access the text with {{component.props.announcement_text}} Re: How to do session key authentication with GraphQL For now, authentication is still done with the APIv1 authentication mechanisms. Re: QraphQL Missing constraint on the messages collection In classic/LiQL the post time constraint ended up being very inefficient, and even inaccurate with larger date ranges. So, assuming this omission is intentional in GraphQL, I'd say it was likely omitted because of similar reasons. I don't know the actual reason though; I'd have to confer with our internal dev teams to confirm the actual reason for post time not being a constraint. Re: Can someone walk me through authenticating and using Postman with Aurora? Here is my pre-request script for Postman for using the access token auth flow. var CryptoJS = require('crypto-js'); const clientID = pm.collectionVariables.get('clientID'); const clientSecret = pm.collectionVariables.get('clientSecret'); const secretSKey = pm.collectionVariables.get('secretSharedKey'); const encryptString = (str, salt) => { const sha256 = CryptoJS.algo.SHA256.create(); sha256.update(str); sha256.update(salt); return sha256.finalize().toString(); }; function getNonce(){ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let result = ''; for (let i = 0; i < 16; i++) { const randomIndex = Math.floor(Math.random() * characters.length); result += characters[randomIndex]; } return result; } var nonce = getNonce(); var epochTimeMinute = Math.floor(Date.now() / 60000); var key = clientID+':'+clientSecret+':'+nonce+':'+epochTimeMinute; var secret = encryptString(key,secretSKey); pm.collectionVariables.set("nonce",nonce) pm.collectionVariables.set("hash", secret); You can see, the nonce is just a random string of 16 alphanumeric characters, and that gets put in a part of th key, which we encrypt with SHA256. You then pass these parameters to that accessToken api in the request body { "client_id":"{{clientID}}", "client_secret": "{{clientSecret}}", "redirect_uri": "{{redirectURI}}", "grant_type": "client_credentials", "cc_hash": "{{hash}}", "hash_algorithm": "SHA256" } And the nonce gets passed as a header; nonce: {{nonce}} Re: QraphQL Missing constraint on the messages collection Post time is going to be a sort. So you can sort by that, then grab something like 10 or 20 at a time until you've reached 1 hour ago. Re: Can someone walk me through authenticating and using Postman with Aurora? GlennD wrote: I'm trying to move our data team over to the v3 bulk data API as the v2 version stopped working for them after we upgraded to Aurora. We use the Khoros SSO on our production community, will #1 Session Key (local account username and password) work for us? I've created a user but can't test signing in without getting directed to the SSO path What is the API path you are using? Unless you have a very strict or non-standard SSO configuration, I would expect the authentication API to work. Re: Can someone walk me through authenticating and using Postman with Aurora? I'm looking for the same walkthrough using Option #3 Access Token using pre-shared key (Dev Tools API apps). Can anyone help? For this, all you have to do is pass the the API token as a bearer key in the header. For example: Authorization: Bearer sDkKeY== Re: Problems with custom components in Aurora In GitHub, check the Actions tab on your <phase>-main branch, and see if there are any errors. Other things to try: Check package.json and ensure the SDK version matches your community version (likely 24.12 or 25.1) Run npm i in your repo Run npm run build in your repo. This will do the same thing the actions in GitHub does. This will uncover any errors that may prevent your component from deploying properly Re: Classic - Event Board Page force List View Alright, after some sleuthing, looks like it might be a user setting of sorts. occasion.current_view_for_user Maybe you can use freemarker to check and set that setting for the user in common.init. For anonymous users, it seems to also use a cookie lia.anon.occasion.current_view_for_user. The valid values for the setting are: list or calendar Hopefully that gets you going in the right direction.