support-chat
This is the support-chat chat channel, created by KajMagnus (KajMagnus), 2016-10-01 08:47:17.784Z
Chat about Talkyard and related things. E.g. ask quick questions.
(Not implemented)
@KajMagnus are you here? Talkyard production server is partially down
Hey team. I think I'm looking in the wrong place in the help docs so hopefully this is an easy question.
Explanation: I am running a self hosted talkyard server for a game that I play. We have players all over the world with all different languages.
Users will often post in our forums in their native languages. The game we play has an auto translate feature built in to smooth the language barrier.
Is there a solution that will allow talkyard to auto translate posts when the post loads? Or even translate and store the translation for presentation at the appropriate time?
Thanks, and sorry if this is in the support topics.

@chrscheuer Should work now (see the emails and other topics), except for the too strict full-text-search rate limits. (Sorry for the troubles)

@JasperChhh i dont think that is possible at this time. I added a new idea that could also help with what you are looking for, but with a different approach. Check it out:

@JasperChhh yes @Mr.Nobody is correct in that this isn't directly supported in Ty. — Loading the forum in Google Translate, I wonder how that would work. Hmm here's this forum in Swedish: https://www-talkyard-io.translate.goog/forum/latest?_x_tr_sl=en&_x_tr_tl=sv&_x_tr_hl=en&_x_tr_pto=wapp — but it seems all navigation links are broken: they bring me back to the English version :- (
The game we play has an auto translate feature built in to smooth the language barrier.
How interesting — how well does it work, would you say? If people say 20 things to each other, how many of those get interpreted mostly as intended :- )
Interesting idea. @Mr.Nobody , about a main post and child/duplicates possibly in other languages :- )

@JasperChhh — here're two old topics about blog posts and comments in different languages: (supporting this is not currently on the roadmap)

@KajMagnus could you guide me through the process of setting up a custom domain (with SSL?) I also sent you an email.

Yes, I'll fix tomorrow morning (I need to type a command to generate a cert) @Mr.Nobody
Hi. How can I import disqus comments to talkyard?
Hello. I'm trying to install talkyard on my Ubuntu 20.04 vServer. I followed the install instructions on https://github.com/debiki/talkyard-prod-one. At step 9)
./scripts/upgrade-if-needed.sh 2>&1 | tee -a talkyard-maint.log
the installation fails with error:
Creating talkyard_web_1 ...
ERROR: for talkyard_web_1 UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=240)
ERROR: for web UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=240)
An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 240).
As you can see I already increased timeout limit to 240. Do you have an idea how to fix that or what causes the error? Could it be too less RAM/CPU? Thanks!
FYI Installation succeeded on other server machine with increased RAM /closed

@knzo — thanks for the update. I hadn't seen that error before (or had, but have forgotten). Maybe it'd be good with something about that error, in the docs. There could be a Troubleshooting section, just after the main installation instructions. Edit: Done, in a work-in-progress Git branch. Will appear in a docs/troubleshooting file.

@immarfa — you'd run a script to convert the Disqus XML export to Talkyard jSON. Then another script to upload the JSON to the Talkyard server. Is this for your self-hosted Ty installation, or for the SaaS hosting service here? (In the latter case, you'd send the JSON file to me and I'd upload it to the server.)

@Mr.Nobody , re the Dfinity community management and adoption post a few weeks ago (here),
@KajMagnus yeah that's me. No need to read the full thing, in short: I mention they need a forum with voting capabilities since they have no way to sort posts by "most liked".
I actually did read the whole discussion , and it was quite interesting. I liked the ideas you had, and I thought some of them Talkyard can do as well. Many are not applicable, e.g. taking photos of an office (I'm in a shared co-working space :- ))
However, this:
- Post weekly updates of what the team has worked on. What has the dev-team been up to?
That I'll start doing (in a while). I actually created a new type of comment sort order, to facilitate this. On pages with this sort order, top level replies get sorted newest first. I'll create such a topic, and post status updates there, maybe once a week. And when one opens such a topic, one will see the most recent update, directly at the top (just below the orig post).
>= 2nd level replies (i.e. replies to the status updates) get sorted best-first instead of by time. This lets "everyone" see the most interesting replies/thoughts, others have had, about each status update.
I'm thinking about this as a light weight blog: each status update (top level reply) corresponds to a blog post. But they're more informal and lower effort — just comments. And the replies to a status update, corresponds to the embedded comments discussion that would have happened on a real blog.
***
Also, the default comment sort order will be configurable per category (even per page — I needed this for the status-updates "lightweight blog" page). Admins can change it.
There'll also be a newest-first then oldest-first sort order — which can work like a new type of threaded chat. Just that the latest chat message, is at the top. And to see the threaded replies, one scrolls down ... until a bit further down, there's another "top level" chat message, maybe threaded replies, and so on. I wonder how this will work :- ) & if this description was confusing

oh cool! glad it also helped you :)
btw, did you ever think about hosting talkyard on the blockchain? The same source code would work, you would just have to update parts that handle database information. I would love to see something like that, and the only guys building something like that on the IC at the moment are these: https://h5aet-waaaa-aaaab-qaamq-cai.raw.ic0.app/
and they are just trying to copy reddit, which I think is useful for people wanting to track bugs, features, ideas and actually engage with the community. Your approach, UI and everything is so much better.
And Dfinity is giving out grants to developers who want to build apps like these. If you send them a link to talkyard, already working and active, they could give you between 5-25k USD to transfer it to the IC. They are giving out grants in values of up to 100k USD.
Is the search functionality intelligent? Does it use synonyms? Is the search result ranked based on the hits of keywords in close proximity in the target text?
Is NLP and AI used?

@mick62 — intelligent, a bit yes. It's ElasticSearch, but version 6.x — the latest version is 8.x already, and once Talkyard has upgraded to that version, the search functionality be even more intelligent, or even more less dumb. — ElasticSearch ranks the results based on all of 1) exact phrase matches, 2) single word matches and 3) synonyms. I don't know precisely how it does this though. There's no NLP or AI.

@Mr.Nobody , about hosting Ty on the blockchain: I thought about that, and looked a bit into Scuttlebutt, https://scuttlebutt.nz, long ago. However once I realized that there is no real "delete" functionality in a blockchain — once something is in the blockchain, it's there forever — I thought that in most cases, the blockchain is almost an a bit dangerous place to store conversations. I think it's important to be able to delete conversations.
Theoretically, when not using a blockchain, someone could still have saved a message (e.g. taken a FB Messenger screenshot), before the sender deleted it — but they who saved the message, cannot prove that they didn't just make up those messages themselves (composed them themselves and faked the author name). Whilst if in the blockchain, there's a "crypto-strong" proof that the sender actually sent the message — also if s/he wants them deleted. ... Thinking about clueless teenagers who post whatever to Facebook, and then possible employers find that stuff years later and they don't get the job — it seems to me it's important that stuff can get deleted. Or civil rights activists in a place that some years later changes to a dictatorship.
I imagine there can be some special cases where it's good to have a discussion persisted on the blockchain though.

@KajMagnus I agree with that :) Take a look at how Dfinity's ICP network works. It behaves much closer to a classic webpage, which allows you more freedom to delete things.
These apps are all hosted on ICP, including the images and everything else. There is no CDN, amazon server or anything similar 'in the middle', it is hosted and loaded directly from their blockchain:
- Blog app: allows users to post articles, edit articles and delete articles: http://nuance.xyz
- Redit Clone: create posts, delete posts, edit posts, upvote, change votes, etc: https://h5aet-waaaa-aaaab-qaamq-cai.raw.ic0.app/
- Linkedin Clone: also with edit/delete etc https://az5sd-cqaaa-aaaae-aaarq-cai.ic0.app/
in short: with these new chains you can alter data. And it is able to run TypeScript :)
this course includes parts about deploying on IC: https://www.udemy.com/course/the-complete-web-development-bootcamp/
It still has many issues, and I don't think it will replace regular hosting completely for now. But sometime in the next 18-30 months things will start to shift pretty fast IMO.
But I am helping a team build an app on it, so my opinion is biased of course. :)

@KajMagnus I just noticed that the crawled page by google is using the nofollow attribute on links. Is this a bug? We want google to follow those links.

@Mr.Nobody, about rel=nofollow — it's a good (safer) default I think. There's going to be a way to change to rel=follow.
Not sure, though, how to do that. Different approaches could be, 1) making all posts by Trusted members rel=follow by default. Or a configurable trust level. — But then what if such a post is edited by a new member, who adds a new link? Now it's getting a bit complicated.
Or, 2) the mods could configure a list of domains one may rel=follow link to. Or if 3) rel=follow is the default, then, instead a list of domains one may not rel=follow link to.
Or 4) to have a min [will-rel=follow-link by default trust level] — and then notify mods when a new domain is linked to, so they could approve or deny rel=follow liking to that domain. And thereafter that'd be the rel=no/follow setting for everyone, thereafter, to that domain. And only mods could override.

with these new chains you can alter data
That's cool :- ) Hmm I started wondering if what happens is that a message gets appended to the blockchain that "I want this older blockchain entry deleted", and then all well-behaved clients won''t show that older entry (e.g. a blockchain LinkedIn clone post), although it's still in the blockchain.
I wonder if this could be parts of the answer to the question:
Are all blocks stored permanently on the Internet Computer?
They are not. The Internet Computer does not rely on historical blocks for verification purposes. Each replica only stores enough blocks to keep the network healthy (e.g., help other replicas catch up), and will delete old ones when they are no longer needed.
That's seems like a big improvement I'm thinking :- ) nice to not have to download gigabytes-upon-gigabbytes of blockchain data. (Right?)
Hmm. Whilst the problem that a malicious client could choose to remember all old messages — or event intentionally remember messages that people wanted to delete — and then cryptographically prove that person X sent message Y and then deleted message Y.
(I'll have a look at the blockchain apps in a short while)

I'm wondering if the only possible way to delete data, without anyone being able to prove that it was actually posted by person X long ago, would be to store that data outside the blockchain. For example, a blockchain entry that adds a new message, could link to ... maybe a Cloud Storage bucket somewhere. Without any signature of its contents.
(And whether or not that was a good idea, would depend on both the app and the user, I suppose.)

@KajMagnus yes, you are right. I did some more research and hadn't realized forums were disabling the 'follow' attribute to avoid spam. So yes, the current implementation is better. And yes: giving at least "core staff" the ability to have links with follow would be nice, so that the forum better interacts with the other pages on the same domain (for SEO purposes).

about data persistance on the blockchain: ICP uses anonymous login (no email, etc). So even if someone proves that something was posted, the system creates a new "anchor" for each webpage the user logs in with that identity. So even if someone discovers your "anchor" on one service/webpage, they can't link that to your login on other services (unless you use the same username etc making it obvious to assume it is the same person).
Hello, is there a page for payments ? somwhere in admin view maybe ?
@KajMagnus I want to use different Certs for SSL purpose.. not the one auto-generated by 'Let's Encrypt'
Please suggest if this can be done.. share the steps of config changes.

@clay There's no way for you to pay, until we've sent an email about how to do that — we (I) do after a bit more than a month has elapsed. Sorry for the late reply, and for the lack of info about that

@vebby Yes you can use your own cert — I just wrote a How-To about that: How to use a Custom HTTPS Cert (let me know if it works for you?)
What's the reason you want to do that b.t.w.? (You have an extended-validation cert? Or it's a wildcard?) If I may ask.

@vebby did you have in mind to self host Talkyard, or to use the Software-as-a-Service? The instructions about a custom HTTPS cert, was for self hosted sites.
I'm looking to explore the APIs that are available in Talkyard and have created a new test site (https://test--xdesign-test.talkyard.net) in order to have a look around. However when trying to invoke, for example, the upsert-simple API I'm getting a 403 error in response:
403 Forbidden
Not allowed. Ask for help at About the Sandbox category [TyEM0UPSSIMPL]
I've seen one other message with a similar error that suggests a feature flag needs to be enabled for the site in order to allow API calls, is this still the case? If so, is it possible to get the feature flag enabled for https://test--xdesign-test.talkyard.net?

Hi Brian, should work now.
a feature flag needs to be enabled for the site in order to allow API calls
Yes that's right, now I've enabled the feature flag for test--xdesign-test.talkyard.net
. (Hmm it would have been nice if there would have been a button in the 403 Forbidden message which one could click, and type something, to request access.)
@KajMagnus thanks so much for the quick reply, much appreciated! Is there an an API endpoint available to accept an answer on a page? Looking at the routes file in the repo I thought that accept-answer would do the trick but I'm getting a 404 when I try to hit https://test--xdesign-test.talkyard.net/accept-answer

@briangourlay — The URL should be /-/accept-answer
(starting with /-/
). That's not an officially supported API endpoint — there will be something "official" later, via Ty's "Do API". If you'd like to use /-/accept-answer
until then, then, I'd think that'd work fine (just a tiny risk that it breaks if I forget about it and make internal changes).
Hi, @KajMagnus! Help me, please.
How do I set up a search so that typing "postgre" for example will result in all "Postgresql" messages. Search not by full word match.

Hi @oleff251 sorry for the late reply, I forgot. — I think that the way ElasticSearch is configured currently, "postgre" isn't going to work. Maybe after Talkyard has gotten its ElasticSearch instance upgraded to the latest version of ElasticSearch, and then, with some configuration of ElasticSearch maybe.
Edit: Ok so this can be made to work. Maybe some time next year 2023. Here's ElasticSearch's docs:
- fuzzy queries: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html, and
- prefix queries: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-prefix-query.html, and
- adding one's own synonyms: https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-synonym-tokenfilter.html

@tdemille I think there's no 14 or 15 users limit? What makes you ask?
Hallo @KajMagnus,
in my forum (forum.drumm.sh) users currently get the following error message when creating posts: "You cannot do that, because this site's disk quota has been exceeded, sorry. [DwE7GH42]"
Could you please adivse how to solve this? Do I need to delete old posts / users? Or is it possible to increase the quote?
Thanks in advance
Christian

Hi Christian @ceedee666 Now this should have been fixed — I increased the site's disk quota. So now the site is at 14% disk usage instead of previously out-of-space at 100%. Sorry for the troubles.
(There's going to be an automatic message about this when a site is at 50% but not yet implemented :- ( )
Thanks for the quick help!
Is there soemthing I can do to e.g. remove old posts?

@ceedee666 Not currently. Old posts just get soft-deleted (there's a flag that marks them deleted). — Usually images and videos occupy more space, and having and option to automatically delete large images or videos after a while, sounds like interesting. I think for example Imgur auto-deletes (or used to do) images that haven't been accessed in 6 months.
Hello everybody, we are considering to use talkyard as a public community forum + also handle support requests in a private manner if user wants it. Do you know if it is possible to change permissions based on topic or category level to let it be seen only by specified users?
Also we plan to use SSO to let our users easily login to talkyard but from first look it seems users using SSO will be considered part of staff. Do you know a way to mark those users as non-staff?

Hi Kemal @kemal.dag,
Do you know if it is possible to change permissions based on topic or category level to let it be seen only by specified users?
Based on categories — yes. You can create custom groups, and give people in a certain group access to a category. It's also possible to send private messages to user groups — in case someone wants to talk privately with, say, a @support
group.
change permissions based on topic
Not yet implemented. Currently permissions are per groups and categories. Some time later, though, it'll be possible to change permissions on a topic, so only certain people can see it (that is, making it a private topic). There'll also be private comment sub threads (much later).
use SSO to let our users easily login to talkyard but from first look it seems users using SSO will be considered part of staff
Maybe your staff share the same email address domain? Say, some-name@yourcompany.com
. Then, people with that email domain could be considered your staff / employees.
What kind of SSO do you use b.t.w.? It's not often I hear about SSO for a company's customers (I mean, more often it's for the company's employees only). Someone did mentoin Azure B2C though long ago. And of course consumer addresses like *@gmail.com
login should by default not be considered employees.
Hi everyone, I would like to ask if Ubuntu is supported for Talkyard. And if so, what version is usaable?

@johnmalibu Ubuntu + Talkyard has worked fine. Ubuntu is not officially supported, still, until two months ago, Ubuntu 20.04 was actually the recommended OS. Now it's Debian 11 instead.
I did some minor changes in a helper script that installs Docker-Compose, when switching to Debian 11. If this script won't work, then you would need to install Docker-Compose v1 yourself "manually", instead of using Talkyard's helper script.
Talkyard was using Ubuntu 20.04, but I would think Ubuntu 22.04 is better — then, Docker versions etc will be the same or a bit more recent than in Debian 11.
What makes you want to use Ubuntu? (If you have an Ubuntu server already, what OS version? if I may ask)
@KajMagnus Hi, The reason I want to use Ubuntu as I am more familiar with the maintenance of Ubuntu rather than Debian.
@KajMagnus the page /tags/all exists, but on my instance just shows 0s against all the tags for usages, and the links aren't clickable - is this a work in progress? or is something broken on my instance?
also, @KajMagnus is it intentional that tags don't appear on info pages?

@danielt No tags on info pages — oh that's a bug (not intentional).
the page /tags/all [...] is this a work in progress?
Yes. (Nothing broken on your instance. Sorry for the a bit late reply)

@johnmalibu When I switched to Debian, from Ubuntu, there was nothing new I had to learn (at least not that I can remember I had to learn). Instead, now I can forget about Ubuntu specific things and still be fine :- ) (since Ubuntu sort of = Debian + extra stuff)

(But PPAs are for Ubuntu, not Debian. So I can forget what I knew about PPAs, which was not much.)
hi @KajMagnus,
{ssoId: ${ssoId},
primaryEmailAddress: ${primaryEmailAddress},
isEmailAddressVerified: ${isEmailAddressVerified},
username: ${username},
fullName: ${fullName}}
We log in as the "New Member" trust level using an object like the one above. Can we add a parameter such as trustLevel: "Full Member" in this object to include new users in different trust levels? Or will there be an update on this soon?

Hi Cem @cm.ozder, trustLevel: "FullMember"
, that's a good idea. Not currently supported, but ought to be a quick fix. Maybe there could also be an addToGroups: ["group_username"]
field — in case you'd like to add employees to, say, an @employees
group.
(Edit: Writing tests to verify it works, will take longer than making the actual change)

Hi @Pierre_G — this is a self hosted server? Then you can check a log file — the reset-password magic link, is in log files which you can access as Linux root at /var/log/talkyard/
, I'll write more, e.g. exact log file path and what to search for in the logs, so you'll get the reset link, when I'm back again at the computer, in a few hours.

Hi @Pierre_G does this help: How to reset admin password? (before having configured email)
(Were you wondering about the admin account? Or an ordinary members account? I can write something about the latter too, if you want)
Hello,
Is there currently any way to change the landing page ?
I would prefer /categories than /latest.
At least for new users it seems better that way.
PS: about the previous question, I finally managed to setup the HTMl so I could reset it simplier. Thanks for the help and sorry for the late reaction.

Hi @Pierre_G , good question, I created a How-To page about that just now: How to change the Start Page
Thank you for your help, I didn't find it before because the favicon display was so huge I didn't see the other options below ...
I'm a bit embarrased, bc talkyard is so fine to set up and use, but I don't understand how groups work and if they can be private so that no other than the group members can see the discussions. I couldn't find a thread. Thank you for answering!
Does anyone happen to have a full list of all Talkyard environment variables? I can't seem to find anything.

Hi Anette @amm , good question. Yes, groups can have private discussions. Create a group, then create a category, and in the category's Security tab (you can see it when you create the category, or if you click Edit category later),
remove group Everyone, and add the new group instead. Thereafter, only people in that group, can see the category and discussions happening therein.
I'll try to write something more detailed including screenshots later today or tomorrow. (Sorry for the a bit late reply)
So, you'll need not just a group, but also a category, to have private discussions. (The group is for grouping people, the category is for grouping discussions.)

@Supernova3339 Do you mean Linux environment variables? (like:, bash$ SOME_ENV_VAR=123
)
And / or config values in the file /opt/talkyard/conf/play-framework.conf
? (Or sth else :- ))
Hello,
I am trying to embed a comments section into Zola hosted with github pages, but I am receiving a react bundle error.
slim-bundle.min.js:10:251110
Uncaught (in promise) Error: Minified React error #200; visit https://reactjs.org/docs/error-decoder.html?invariant=200 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
Am I missing something? Thanks!

Hi Hunter @aquila_const — seems there're two problems:
1. The first is what looks like a Talkyard embedded comments bug, which happens if the admin enables:
Approve users — New users need to be approved by staff before they can do anything more than just reading.
Usually (or never until now?, hmm) people don't enable this setting, for blog comments, only for discussion forums. But I think it ought to work for blog comments too. So I'll look into that.
Until then, if you un-tick Approve users, the error should go away. But there's also:
2. There's a configuration error. I had a look at the embedded comments configuration, and noticed that you've included www.
in front of the your-address.github.io
. So it looks like: https://www.your-address.github.io
.
But should be just: https://your-address.github.io
without www.
(GitHub thinks www
is unnecessarry in this case (just more text to type) so just ones-username.github.io
is the address they give their users. — B.t.w., should also be just http://127.0.0.1
, not http://www.127.0.0.1
. One never combines IP numbers like 127.0.0.1
with a www
text prefix.)
@KajMagnus thank you for your help! Yeah I was reading the previous comments and I think it should be listed somewhere within the setup just because I had thought it was just the original https://github.io but didn't work and it was mainly due to the approve new users section. This is great. Thanks again!

@aquila_const ok :- ) Glad it works now anyway. Hmm yes it'd be nice if Talkyard said "www isn't needed", if it sees a GitHub domain name or an IP address. I opened a bug about the bug: Bug: Blog comments break if Approve Users enabled
Hey there! I was about to reply to a comment on my blog that was posted on Friday. I haven't made changes to the site since then, but now Talkyard won't load. Firefox console says:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://site-1cgaa3uxxd.talkyard.net/-/v0/get. (Reason: CORS request did not succeed). Status code: (null).
2
Request failed, no response [TyEFET0RSP] TypeError: NetworkError when attempting to fetch resource. talkyard-comments.min.js:10:20291
Chrome:
talkyard-comments.min.js:10
POST https://site-1cgaa3uxxd.talkyard.net/-/v0/get net::ERR_CERT_DATE_INVALID
| sendFetchRequest @ talkyard-comments.min.js:10
| e.fetchAndFillInCommentCounts @ talkyard-comments.min.js:10
| (anonymous) @ talkyard-comments.min.js:10
| (anonymous) @ talkyard-comments.min.js:10
talkyard-comments.min.js:10 Request failed, no response [TyEFET0RSP] TypeError: Failed to fetch
| at Object.sendFetchRequest (talkyard-comments.min.js:10:19616)
| at e.fetchAndFillInCommentCounts (talkyard-comments.min.js:10:21337)
| at talkyard-comments.min.js:10:22554
| at talkyard-comments.min.js:10:27854
| (anonymous) @ talkyard-comments.min.js:10
VM10:5 crbug/1173575, non-JS module files deprecated.
Ah Talkyard loads again, except 2 stylesheets have a 404 and my custom CSS is missing

Hi @koos, Should work now again. The DNS wildcard cert for *.talkyard.net
expired yesterday — I had forgotten to renew it (need to do every 3 months). (There's a way to automate this via Gandi.net's API: https://api.gandi.net/docs/livedns/ (Talkyard currently uses Gandi.net for domains) plus Certbot, but then apparently the same API key can also be used to change owner of the domain: https://api.gandi.net/docs/domains/ which seems risky, so for now I'm renewing the HTTPS cert manually instead every 3 months (hmm most of the time), ... and was thinking about moving to CloudFlare, who have a more granular API permissions (https://developers.cloudflare.com/fundamentals/api/get-started/create-token/), but they didn't support .io (which Talkyard .io uses), but it seems they nowadays do: https://www.cloudflare.com/tld-policies/ so maybe now / soon is the time.)
Sorry for the 1 day can't-post-comments problem.

@koos Oh yes you're right that the custom CSS doesn't load, I'll have a look

@koos Now this has been fixed — the custom CSS works again (the blog comments appear in the right color, I mean, the same as your blog). (There was a bug related to a new CDN feature, which wasn't really in use yet anyway, and for now I've disabled it via a feature flag.)
is tags a supported feature? I have a test website here: https://test256.talkyard.net/-/tags/all
and have created a few posts with tags. How do see the posts with a certain tag? I have searched a bit and haven't found anything yet.

@karu — listing pages tagged with a certain tag hasn't been implemented :- ( it's not going to take that long to implement. Maybe I should prioritize that now soon.
Anyway, exactly right now, you can tag things, but cannot yet list the tagged things.
How are you looking to use tags, b.t.w.? In the "normal" way, I mean, to describe what a page is about, and list other pages also about that?
Thanks for the quick response @KajMagnus . The use case I am envisioning is something like this.
At a prototypical URL: https://../-/tags/views/
Would list all the discussion topics associated with that tag. And it would have a header at the top that would allow some brief discussion about that tag. Basically exact same as a categories view (except with tags an entity can belong in multiple tags obviously). Does this seem intuitive to you?

a header at the top that would allow some brief discussion about that tag. [...] same as a categories view [...] Does this seem intuitive to you?
Yes, something like that.
(With "discussion", you mean description, right? But not people posting comments and talking about the tag? I imagine there wouldn't be enough space for the latter. There are, however, pages of type About, and maybe if one wanted to discuss a tag, one could start an About page and somehow link it to the tag. Then, Talkyard could know it's a meta discussion about the tag (and not an ordinary page tagged by the tag), hmm.)
Possibly the URL will let you specify many tags, like: https://server/-/tags/kittens,camels,kangaroos
and you'd see all topics with all those tags.
Or maybe such functionality would instead be provided via search queries: https://server/-/search?q=tags:kittens,camels,kangaroos
.

@karu, In your URL example, is "views" in https://../-/tags/views/
meant to be a tag named "views"? Or would the complete URL to a tag in your example, be: https://../-/tags/views/kittens
if the tag is "kittens"
yep - I meant brief "at the top brief description of the tag".
either with /search or the -/tags/kittens,camels - both sound good. Whichever you feels goes best with the flow of what you have.
With my URL example, I was just free-handing something. Not too particular. In my example, I was meaning view as a level of endpoint hierarchy in the URL. so the views can be ignored. In my example, /tags/views/kittens would show tags of kittens. Does this help clarify?
I have a separate unrelated question on the API interface. I am not sure if the page create API is working. Is this curl URL supposed to work:
curl -X POST --user tyid=2:XXXXXXXXXXXXXXXXXXXX https://test256.talkyard.net/-/v0/upsert-simple -H "Content-Type: application/json" -d '{"pages": {"categoryRef": "tyid:year-1997", "authorRef": "username:karu", "title": "this is the posted title", "body": "this is the body", "bodyMarkupLang?": "HTML", "pageType": 12}}'
Where XXXX is the secret API key.

@karu description/discussion etc, ok, yes, thanks for clarifying.
About the API, Is that for upserting publications from year 1997? Having had a quick look, I see 2 problems:
1/2: There's a typo / an error: bodyMarkupLang?
should be bodyMarkupLang
without the ?
. The ?
is from Typescript and means that that key-value is optional. Hmm I guess this should be clarified somewhere. I think you should include bodyMarkupLang
, otherwise the default is CommonMark (which then would get compiled to HTML).
2/2: "categoryRef": "tyid:year-1997"
— instead, go to that category, click Edit Category, and in the bottom of the edit category dialog, there's a link External ID (optional): None
— click it, and type year-1997
. Thereafter that category has a permanent id you can refer to, when upserting. And change from tyid:
to extid:
. So it'll look like: extid:year-1997
. (However, if using the category slug, then the external code that upserts into the category, would break, if you rename the category slug.)
There's this end-to-end test: api-upsert-pages.2browsers.test.ts if that's any helpful. Let me know how it goes?
trying this now...I still get a 403 Forbidden.
I created the external id for a the parent category (Papers); and still get the same error.
curl -X POST --user tyid=2:XXXXX https://test256.talkyard.net/-/v0/upsert-simple -H "Content-Type: application/json" -d '{"pages": {"categoryRef": "extid:year-1997", "authorRef": "username:karu", "title": "this is the posted title", "body": "this is th
e body", "bodyMarkupLang": "HTML", "pageType": 12}}'
403 Forbidden
Not allowed. Ask for help at https://www.talkyard.io/forum/ [TyEM0UPSSIMPL]
I don't mind sending you the secret API key (this is currently a test website - before public release). If that helps.

@karu 403 Forbidden TyEM0UPSSIMPL
— then I need to enable a feature flag for your site (ffMayPatchSite
) ... Now done, what happens if you try again?
(I was previously assuming it was a self-hosted site. And I had forgotten about that feature flag anyway.)
trying....
this one's on me. but any quick ideas you have I appreciate. I get a JSON array/object error. Presumably I need to formating the payload differently?
curl -X POST --user tyid=2:1f52zwr9g02izsg1a3j8lwdrr6 https://test256.talkyard.net/-/v0/upsert-simple -H "Content-Type: application/json" -d '{"pages": {"categoryRef": "extid:year-1997", "authorRef": "username:karu", "title": "this is the posted title", "body": "this is the body", "bodyMarkupLang": "HTML", "pageType": 12}}'
400 Bad Request
Invalid json: 'pages' is not a JsArray, but a JsObject [EsE4GLK3] [TyE306TMRT2]
ok got it to work.
Looks like I was missing extId, and pages is an array of objects. so do i get freedom to pass, whatever name/string I want through the extID field?
This is what is working: (I just passed in foobar0) as the extId.
curl -X POST --user tyid=2:1f52zwr9g02izsg1a3j8lwdrr6 https://test256.talkyard.net/-/v0/upsert-simple -H "Content-Type: application/json" -d '{"pages": [{"categoryRef": "extid:papers", "authorRef": "username:karu", "title": "this is the posted title", "body": "this is the body", "bodyMarkupLang": "HTML", "pageType": 12, "extId" : "foobar0"}]}'
and going back to tags, are tags supported in the API creating? From the tests, looks like tags for pages/discussion topics upserted via the API is not supported? I didn't see anything in the code in the tests that has tags.

@karu, About "extId" : "foobar0"
— I think that field might be optional. It's useful if you also want to upsert comments — then you can refer to that page, using foobar0
. If publications have any universal IDs (like ISBN for books?), that might be a good extid (external id).
(The internal ids, tyid:...
, are meant for Talkyard to use itself, if generating a JSON export file of a forum, for example.)
Back to tags: I think upserting tags is not currently supported (I can have a look, I don't remember having added that though). It seems the next thing in Ty, could be to add support for upserting tags, & tag descriptions & listing things by tag.
Can I install talkyard on my custom domain and have it like community.mydomain.com, not community.talkyard.com ?

@taerese Yes, if you create a community via our SaaS, then, you can go here:
https:// your forum .talkyard.net/-/admin/settings/site
and click Change address ....
If you install on your own server, you'd instead edit a config file: /opt/talkyard/conf/play-framework.conf
.

@myron_ai Yes there is, here: https://insightful.demo.talkyard.io — feel free to post test comments.
There used to be a link to that test forum, from the homepage — but people posted so many test comments, so it ended up looking like a total mess, not making a good impression any more, so I removed the link, for now. Some time later, all such test comments will get auto deleted regularly, so only more seriously looking comments will be there.