ContributionsMost RecentMost LikesSolutionsRe: HTML support for GraphQL API If I had to guess, I would say you could. I think even in community classic we were able to manually put in those <li-asdf> tags into the message body, and as long as it resolved to an actual object and ID, it would work. Aurora uses GraphQL for 100% of its interactions with the DB/Backend, and I'm quite certain we save those tags to the DB. So, what you can do for any Aurora operation, is "do the thing" with brower dev tools network tab open. You may need to make sure to "preserve log" in case the page reloads. You will see a "graphql?opname=Something" in the requests. If you look at the payload of that request, you can see the data they are sending to graphql. The "opname" you see in the network requests just map to a .query.graphql (or .mutation.graphql) on the backend, with relevant variables set. So only sort of gotcha with this is it may not be immediately obvious which graphql query or mutations they are using, Re: Handlebars custom component not executing GraphQL query Try this {{#gql "privateUserStats" variables=(hash id=(join "user:" user.id ""))}} Re: Download graphql schema? You have two options. Some API Tools (e.g. Altair) will let you download the SDL once it's able to complete its introspection query. Alternatively, if you install the SDK, the query schema files are all located in node_modules/khoros-aurora-sdk/graphql Re: 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.