PeerTube issueshttps://framagit.org/groups/framasoft/peertube/-/issues2022-09-13T08:14:52Zhttps://framagit.org/framasoft/peertube/instances-peertube/-/issues/46Running on the same machine with peertube and in vpn gives error adding peertube2022-09-13T08:14:52ZxundeenergieRunning on the same machine with peertube and in vpn gives error adding peertubeI run peertube and instances on the same VM on different domains via the same nginx.
And this machine has also configured a vpn for maintenance purpose.
When vpn is up, i can not add the peertube-instance.
So i added the public ip fo...I run peertube and instances on the same VM on different domains via the same nginx.
And this machine has also configured a vpn for maintenance purpose.
When vpn is up, i can not add the peertube-instance.
So i added the public ip for both domains to /etc/hosts, but it doesn't work either.
When i put down the vpn, adding and refreshing of the peertube works perfectly.
The error is
```
Sep 13 09:20:23 tube peertube-instances[116733]: [1663053623105] WARN (116733 on tube): Cannot read properties of null (reading 'country')
Sep 13 09:20:23 tube peertube-instances[116733]: err: {
Sep 13 09:20:23 tube peertube-instances[116733]: "type": "TypeError",
Sep 13 09:20:23 tube peertube-instances[116733]: "message": "Cannot read properties of null (reading 'country')",
Sep 13 09:20:23 tube peertube-instances[116733]: "stack":
Sep 13 09:20:23 tube peertube-instances[116733]: TypeError: Cannot read properties of null (reading 'country')
Sep 13 09:20:23 tube peertube-instances[116733]: at fetchInstanceStats (file:///opt/instances-peertube/dist/server/helpers/instance-requests.js:26:47)
Sep 13 09:20:23 tube peertube-instances[116733]: at async getConfigAndStatsAndAboutInstance (file:///opt/instances-peertube/dist/server/helpers/instance-requests.js:39:42)
Sep 13 09:20:23 tube peertube-instances[116733]: at async createInstanceRetryWrapper (file:///opt/instances-peertube/dist/server/controllers/api/instances.js:32:21)
Sep 13 09:20:23 tube peertube-instances[116733]: }
```
So i think, /etc/hosts is ignored on dns-resolving
In /etc/nsswitch is
`hosts: files resolve [!UNAVAIL=return] dns`
configured.https://framagit.org/framasoft/peertube/official-plugins/-/issues/50Change peertube-plugin-auth-openid-connect plugin registration logic to handl...2022-09-09T17:59:45Zdecentral1seChange peertube-plugin-auth-openid-connect plugin registration logic to handle restarts gracefully?Migrated from https://github.com/Chocobozzz/PeerTube/issues/5209
---
### Describe the current behavior
I have backups running every week. When I do the backups, two services are restarted:
- the keycloak (single sign on)
- the peertu...Migrated from https://github.com/Chocobozzz/PeerTube/issues/5209
---
### Describe the current behavior
I have backups running every week. When I do the backups, two services are restarted:
- the keycloak (single sign on)
- the peertube
Peertube manages to restart before keycloak and fails to register the `peertube-plugin-auth-openid-connect` plugin because it thinks keycloak is gone. However, keycloak starts up a few seconds later... but then oauth login plugin is not set up correctly and the peertube log in button is broken.
### Steps to reproduce
1. Stop the single sign on service
2. Stop the peertube service
3. Restart peertube, see the rror
4. Restart the single sign on service
5. Click log in (end up on empty log in page)
### Describe the expected behavior
The login button works, the plugin is registered.
Maybe there could be more retrying login in the plugin registration code? Or later on, when the login button is clicked and the plugin is configured but not registered, it attempts to re-register?
Alternatively, peertube could not check if the keycloak is up and simply register the plugin anyway. This would be simpler. Users would also know what happens when they arrive on a missing login.example.com instead of a broken peertube login page...
Another idea - if the code is trying to do dynamic registration to discover endpoints then allow the plugin to be configured for static endpoint entry. I can put all the things that are found in the end well known config endpoint into the plugin so it does not need to look them up when starting the service? This could be more robust...
### Additional information
* PeerTube instance:
* URL: tv.lumbung.space
* Version: `chocobozzz/peertube:v4.2.2-bullseye`
* NodeJS version: `chocobozzz/peertube:v4.2.2-bullseye`
* Ffmpeg version: `chocobozzz/peertube:v4.2.2-bullseye`
Logs are:
```
error[22/08/2022, 00:05:50] Cannot load settings and create open id client.
{
"err": {
"stack": "OPError: expected 200 OK, got: 404 Not Found\n at processResponse (/data/plugins/node_modules/openid-client/lib/helpers/process_response.js:41:11)\n at Function.discover (/data/plugins/node_modules/openid-client/lib/issuer.js:152:20)\n at processTicksAndRejections (node:internal/process/task_queues:96:5)\n at async loadSettingsAndCreateClient (/data/plugins/node_modules/peertube-plugin-auth-openid-connect/main.js:185:18)\n at async Object.register (/data/plugins/node_modules/peertube-plugin-auth-openid-connect/main.js:137:5)",
"message": "expected 200 OK, got: 404 Not Found",
"error": "expected 200 OK, got: 404 Not Found",
"response": {
"_readableState": {
"objectMode": false,
"highWaterMark": 16384,
"buffer": {
"head": null,
"tail": null,
"length": 0
},
"length": 0,
"pipes": [],
"flowing": false,
"ended": true,
"endEmitted": true,
"reading": false,
"constructed": true,
"sync": true,
"needReadable": false,
"emittedReadable": false,
"readableListening": true,
"resumeScheduled": true,
"errorEmitted": false,
"emitClose": true,
"autoDestroy": true,
"destroyed": true,
"errored": null,
"closed": true,
"closeEmitted": true,
"defaultEncoding": "utf8",
"awaitDrainWriters": null,
"multiAwaitDrain": false,
"readingMore": true,
"dataEmitted": true,
"decoder": null,
"encoding": null
},
"_events": {
"end": [
null,
null
]
},
"_eventsCount": 4,
"socket": {
"_tlsOptions": {
"pipe": false,
"secureContext": {
"context": {}
},
"isServer": false,
"requestCert": true,
"rejectUnauthorized": true
},
"_secureEstablished": true,
"_securePending": false,
"_newSessionPending": false,
"_controlReleased": true,
"secureConnecting": false,
"_SNICallback": null,
"servername": "login.lumbung.space",
"alpnProtocol": false,
"authorized": true,
"authorizationError": null,
"encrypted": true,
"_events": {
"close": [
null,
null,
null,
null
]
},
"_eventsCount": 10,
"connecting": false,
"_hadError": false,
"_parent": null,
"_host": "login.lumbung.space",
"_readableState": {
"objectMode": false,
"highWaterMark": 16384,
"buffer": {
"head": null,
"tail": null,
"length": 0
},
"length": 0,
"pipes": [],
"flowing": true,
"ended": false,
"endEmitted": false,
"reading": true,
"constructed": true,
"sync": false,
"needReadable": true,
"emittedReadable": false,
"readableListening": false,
"resumeScheduled": false,
"errorEmitted": false,
"emitClose": false,
"autoDestroy": true,
"destroyed": true,
"errored": null,
"closed": true,
"closeEmitted": false,
"defaultEncoding": "utf8",
"awaitDrainWriters": null,
"multiAwaitDrain": false,
"readingMore": false,
"dataEmitted": true,
"decoder": null,
"encoding": null
},
"_writableState": {
"objectMode": false,
"highWaterMark": 16384,
"finalCalled": true,
"needDrain": false,
"ending": true,
"ended": true,
"finished": false,
"destroyed": true,
"decodeStrings": false,
"defaultEncoding": "utf8",
"length": 0,
"writing": false,
"corked": 0,
"sync": false,
"bufferProcessing": false,
"writecb": null,
"writelen": 0,
"afterWriteTickInfo": null,
"buffered": [],
"bufferedIndex": 0,
"allBuffers": true,
"allNoop": true,
"pendingcb": 1,
"constructed": true,
"prefinished": false,
"errorEmitted": false,
"emitClose": false,
"autoDestroy": true,
"errored": null,
"closed": true,
"closeEmitted": false
},
"allowHalfOpen": false,
"_sockname": null,
"_pendingData": null,
"_pendingEncoding": "",
"_server": null,
"ssl": null,
"_requestCert": true,
"_rejectUnauthorized": true,
"timeout": 3500,
"parser": null,
"_httpMessage": {
"_events": {},
"_eventsCount": 3,
"outputData": [],
"outputSize": 0,
"writable": true,
"destroyed": true,
"_last": true,
"chunkedEncoding": false,
"shouldKeepAlive": false,
"maxRequestsOnConnectionReached": false,
"_defaultKeepAlive": true,
"useChunkedEncodingByDefault": false,
"sendDate": false,
"_removedConnection": false,
"_removedContLen": false,
"_removedTE": false,
"_contentLength": 0,
"_hasBody": true,
"_trailer": "",
"finished": true,
"_headerSent": true,
"_closed": false,
"_header": "GET /auth/realms/lumbung-space/.well-known/openid-configuration HTTP/1.1\r\nAccept: application/json\r\nUser-Agent: openid-client/5.1.4 (https://github.com/panva/node-openid-client)\r\nHost: login.lumbung.space\r\nConnection: close\r\n\r\n",
"_keepAliveTimeout": 0,
"agent": {
"_events": {},
"_eventsCount": 2,
"defaultPort": 443,
"protocol": "https:",
"options": {
"path": null
},
"requests": {},
"sockets": {
"login.lumbung.space:443:::::::::::::::::::::": [
null
]
},
"freeSockets": {},
"keepAliveMsecs": 1000,
"keepAlive": false,
"maxSockets": null,
"maxFreeSockets": 256,
"scheduling": "lifo",
"maxTotalSockets": null,
"totalSocketCount": 1,
"maxCachedSessions": 100,
"_sessionCache": {
"map": {
"login.lumbung.space:443:::::::::::::::::::::": {
"type": "Buffer",
"data": [
48,
130,
7,
24,
2,
1,
1,
2,
2,
3,
4,
4,
2,
19,
1,
4,
32,
20,
157,
214,
102,
62,
255,
247,
135,
73,
29,
2,
60,
218,
107,
9,
103,
212,
248,
236,
162,
97,
113,
159,
172,
133,
238,
111,
242,
7,
84,
34,
231,
4,
32,
241,
120,
97,
254,
158,
63,
205,
198,
126,
199,
246,
124,
76,
20,
73,
12,
226,
81,
76,
88,
44,
135,
60,
187,
209,
118,
177,
204,
86,
93,
21,
146,
161,
6,
2,
4,
99,
2,
172,
62,
162,
4,
2,
2,
28,
32,
163,
130,
6,
47,
48,
130,
6,
43,
48,
130,
5,
19,
160,
3,
2,
1,
2,
2,
18,
4,
193,
16,
165,
228,
248,
100,
35,
219,
134,
209,
21,
13,
73,
134,
162,
232,
142,
48,
13,
6,
9,
42,
134,
72,
134,
247,
13,
1,
1,
11,
5,
0,
48,
50,
49,
11,
48,
9,
6,
3,
85,
4,
6,
19,
2,
85,
83,
49,
22,
48,
20,
6,
3,
85,
4,
10,
19,
13,
76,
101,
116,
39,
115,
32,
69,
110,
99,
114,
121,
112,
116,
49,
11,
48,
9,
6,
3,
85,
4,
3,
19,
2,
82,
51,
48,
30,
23,
13,
50,
50,
48,
54,
50,
51,
50,
49,
48,
54,
49,
52,
90,
23,
13,
50,
50,
48,
57,
50,
49,
50,
49,
48,
54,
49,
51,
90,
48,
30,
49,
28,
48,
26,
6,
3,
85,
4,
3,
19,
19,
108,
111,
103,
105,
110,
46,
108,
117,
109,
98,
117,
110,
103,
46,
115,
112,
97,
99,
101,
48,
130,
2,
34,
48,
13,
6,
9,
42,
134,
72,
134,
247,
13,
1,
1,
1,
5,
0,
3,
130,
2,
15,
0,
48,
130,
2,
10,
2,
130,
2,
1,
0,
213,
243,
34,
95,
98,
206,
10,
222,
81,
3,
164,
139,
25,
122,
233,
200,
86,
69,
112,
109,
22,
1,
87,
129,
205,
36,
76,
164,
162,
202,
181,
113,
174,
180,
213,
204,
5,
248,
233,
72,
248,
215,
194,
41,
147,
196,
219,
60,
54,
186,
31,
30,
170,
5,
235,
229,
244,
25,
245,
212,
184,
168,
208,
187,
144,
101,
177,
39,
42,
57,
0,
70,
94,
158,
164,
201,
80,
208,
45,
170,
236,
199,
9,
159,
137,
60,
74,
221,
162,
179,
197,
51,
164,
126,
134,
32,
56,
245,
125,
53,
183,
208,
28,
151,
182,
125,
177,
74,
50,
96,
2,
87,
7,
235,
171,
210,
217,
192,
209,
212,
119,
220,
107,
149,
9,
129,
249,
125,
213,
158,
49,
14,
18,
109,
130,
85,
53,
165,
224,
106,
80,
37,
179,
4,
5,
61,
24,
135,
75,
93,
14,
86,
253,
38,
51,
93,
250,
7,
130,
221,
250,
246,
38,
80,
187,
88,
231,
8,
182,
1,
158,
34,
203,
58,
212,
181,
54,
115,
189,
237,
205,
124,
0,
243,
158,
169,
184,
74,
200,
85,
14,
156,
47,
8,
37,
238,
245,
207,
247,
2,
130,
93,
108,
97,
25,
48,
88,
64,
182,
200,
181,
166,
42,
125,
47,
29,
19,
77,
191,
74,
35,
136,
24,
89,
128,
93,
187,
24,
253,
94,
248,
12,
9,
125,
159,
231,
141,
184,
119,
123,
5,
67,
2,
76,
185,
239,
128,
10,
117,
169,
186,
168,
143,
171,
67,
229,
152,
176,
254,
107,
50,
248,
232,
116,
254,
68,
97,
4,
89,
111,
137,
223,
108,
233,
78,
116,
157,
161,
198,
14,
127,
62,
25,
208,
64,
169,
159,
34,
221,
132,
246,
179,
247,
253,
244,
212,
250,
43,
194,
147,
40,
199,
119,
75,
92,
42,
166,
151,
34,
78,
54,
6,
138,
27,
244,
16,
22,
245,
46,
232,
80,
248,
0,
207,
39,
181,
27,
21,
36,
11,
241,
66,
180,
79,
142,
47,
106,
160,
122,
65,
14,
149,
171,
15,
62,
171,
90,
218,
208,
4,
140,
170,
43,
153,
195,
248,
69,
122,
49,
223,
86,
71,
97,
196,
39,
17,
222,
135,
47,
152,
29,
66,
64,
63,
121,
228,
162,
108,
178,
116,
154,
193,
61,
108,
164,
227,
198,
166,
99,
81,
191,
83,
241,
63,
198,
46,
103,
206,
18,
2,
234,
144,
181,
39,
80,
212,
92,
215,
54,
173,
229,
136,
103,
81,
165,
211,
211,
67,
22,
174,
166,
77,
140,
162,
13,
127,
39,
174,
78,
152,
31,
136,
242,
136,
10,
163,
36,
164,
0,
186,
116,
70,
96,
216,
235,
179,
246,
148,
228,
193,
195,
210,
33,
235,
81,
217,
170,
100,
212,
174,
69,
24,
234,
234,
20,
151,
74,
4,
70,
49,
66,
72,
134,
185,
45,
0,
247,
148,
16,
13,
202,
228,
87,
174,
6,
230,
83,
50,
162,
205,
95,
50,
230,
213,
142,
0,
109,
64,
102,
241,
180,
87,
52,
131,
121,
71,
223,
52,
74,
139,
23,
167,
2,
3,
1,
0,
1,
163,
130,
2,
77,
48,
130,
2,
73,
48,
14,
6,
3,
85,
29,
15,
1,
1,
255,
4,
4,
3,
2,
5,
160,
48,
29,
6,
3,
85,
29,
37,
4,
22,
48,
20,
6,
8,
43,
6,
1,
5,
5,
7,
3,
1,
6,
8,
43,
6,
1,
5,
5,
7,
3,
2,
48,
12,
6,
3,
85,
29,
19,
1,
1,
255,
4,
2,
48,
0,
48,
29,
6,
3,
85,
29,
14,
4,
22,
4,
20,
72,
183,
102,
141,
112,
171,
81,
193,
25,
105,
253,
225,
89,
33,
50,
103,
250,
111,
172,
170,
48,
31,
6,
3,
85,
29,
35,
4,
24,
48,
22,
128,
20,
20,
46,
179,
23,
183,
88,
86,
203,
174,
80,
9,
64,
230,
31,
175,
157,
139,
20,
194,
198,
48,
85,
6,
8,
43,
6,
1,
5,
5,
7,
1,
1,
4,
73,
48,
71,
48,
33,
6,
8,
43,
6,
1,
5,
5,
7,
48,
1,
134,
21,
104,
116,
116,
112,
58,
47,
47,
114,
51,
46,
111,
46,
108,
101,
110,
99,
114,
46,
111,
114,
103,
48,
34,
6,
8,
43,
6,
1,
5,
5,
7,
48,
2,
134,
22,
104,
116,
116,
112,
58,
47,
47,
114,
51,
46,
105,
46,
108,
101,
110,
99,
114,
46,
111,
114,
103,
47,
48,
30,
6,
3,
85,
29,
17,
4,
23,
48,
21,
130,
19,
108,
111,
103,
105,
110,
46,
108,
117,
109,
98,
117,
110,
103,
46,
115,
112,
97,
99,
101,
48,
76,
6,
3,
85,
29,
32,
4,
69,
48,
67,
48,
8,
6,
6,
103,
129,
12,
1,
2,
1,
48,
55,
6,
11,
43,
6,
1,
4,
1,
130,
223,
19,
1,
1,
1,
48,
40,
48,
38,
6,
8,
43,
6,
1,
5,
5,
7,
2,
1,
22,
26,
104,
116,
116,
112,
58,
47,
47,
99,
112,
115,
46,
108,
101,
116,
115,
101,
110,
99,
114,
121,
112,
116,
46,
111,
114,
103,
48,
130,
1,
3,
6,
10,
43,
6,
1,
4,
1,
214,
121,
2,
4,
2,
4,
129,
244,
4,
129,
241,
0,
239,
0,
117,
0,
223,
165,
94,
171,
104,
130,
79,
31,
108,
173,
238,
184,
95,
78,
62,
90,
234,
205,
162,
18,
164,
106,
94,
142,
59,
18,
192,
32,
68,
92,
42,
115,
0,
0,
1,
129,
146,
153,
253,
88,
0,
0,
4,
3,
0,
70,
48,
68,
2,
32,
45,
62,
60,
144,
13,
221,
124,
36,
131,
215,
68,
89,
111,
139,
37,
63,
2,
40,
150,
161,
80,
129,
34,
178,
127,
242,
229,
70,
180,
175,
176,
37,
2,
32,
81,
5,
120,
12,
237,
169,
249,
253,
27,
191,
215,
74,
210,
160,
245,
27,
71,
185,
20,
4,
38,
74,
198,
38,
157,
146,
138,
70,
157,
50,
105,
149,
0,
118,
0,
41,
121,
190,
240,
158,
57,
57,
33,
240,
86,
115,
159,
99,
165,
119,
229,
190,
87,
125,
156,
96,
10,
248,
249,
77,
93,
38,
92,
37,
93,
199,
132,
0,
0,
1,
129,
146,
153,
253,
71,
0,
0,
4,
3,
0,
71,
48,
69,
2,
33,
0,
204,
20,
240,
241,
177,
84,
209,
254,
134,
212,
40,
225,
7,
92,
131,
223,
109,
216,
72,
3,
49,
224,
21,
173,
54,
106,
41,
131,
14,
57,
77,
116,
2,
32,
41,
186,
166,
58,
133,
155,
124,
1,
222,
36,
45,
165,
115,
162,
131,
42,
25,
148,
95,
53,
181,
34,
144,
122,
124,
23,
36,
149,
162,
134,
105,
122,
48,
13,
6,
9,
42,
134,
72,
134,
247,
13,
1,
1,
11,
5,
0,
3,
130,
1,
1,
0,
44,
108,
34,
30,
108,
37,
242,
107,
15,
142,
53,
150,
197,
86,
251,
38,
44,
184,
236,
133,
117,
95,
249,
52,
219,
32,
138,
3,
34,
68,
84,
218,
184,
9,
53,
141,
51,
91,
224,
142,
51,
53,
189,
227,
142,
108,
78,
222,
35,
176,
235,
35,
224,
15,
140,
53,
2,
23,
19,
6,
111,
25,
24,
71,
123,
78,
13,
90,
53,
217,
238,
167,
231,
227,
94,
182,
135,
248,
82,
188,
157,
44,
108,
168,
61,
67,
33,
213,
130,
237,
172,
13,
85,
227,
10,
132,
102,
13,
111,
15,
168,
80,
188,
83,
81,
89,
162,
184,
30,
105,
220,
45,
245,
195,
98,
40,
110,
92,
130,
240,
81,
186,
103,
131,
11,
20,
215,
126,
198,
50,
100,
174,
94,
126,
157,
13,
85,
192,
87,
165,
137,
63,
241,
89,
151,
65,
188,
61,
125,
218,
80,
238,
9,
246,
95,
254,
147,
58,
230,
163,
14,
60,
79,
92,
30,
252,
211,
222,
105,
245,
160,
41,
3,
52,
204,
173,
78,
152,
90,
137,
84,
156,
13,
211,
152,
47,
28,
12,
196,
208,
171,
176,
72,
62,
98,
89,
225,
141,
84,
65,
225,
164,
12,
244,
195,
76,
245,
173,
102,
212,
145,
53,
66,
27,
150,
46,
94,
121,
40,
235,
161,
4,
39,
141,
75,
246,
1,
175,
1,
16,
244,
91,
158,
87,
91,
101,
255,
62,
107,
26,
186,
79,
189,
4,
79,
180,
245,
14,
66,
83,
82,
43,
101,
48,
153,
131,
164,
2,
4,
0,
169,
5,
2,
3,
9,
58,
128,
170,
115,
4,
113,
3,
145,
62,
107,
181,
235,
19,
43,
98,
194,
245,
217,
202,
173,
238,
172,
176,
225,
243,
143,
92,
62,
83,
41,
218,
181,
61,
109,
221,
138,
53,
116,
159,
180,
197,
159,
240,
124,
103,
160,
226,
101,
108,
18,
149,
136,
150,
176,
158,
114,
44,
53,
117,
228,
181,
122,
153,
239,
127,
113,
11,
254,
196,
153,
101,
24,
223,
14,
221,
245,
90,
18,
8,
202,
167,
47,
220,
113,
9,
224,
27,
13,
204,
147,
107,
165,
127,
192,
222,
41,
202,
61,
118,
237,
220,
13,
236,
213,
64,
98,
72,
97,
104,
135,
91,
187,
25,
230,
251,
168,
94,
52,
161,
174,
6,
2,
4,
15,
121,
160,
63
]
}
},
"list": [
"login.lumbung.space:443:::::::::::::::::::::"
]
}
},
"timeout": 3500,
"method": "GET",
"path": "/auth/realms/lumbung-space/.well-known/openid-configuration",
"_ended": true,
"aborted": true,
"upgradeOrConnect": false,
"parser": null,
"maxHeadersCount": null,
"reusedSocket": false,
"host": "login.lumbung.space",
"protocol": "https:"
}
},
"httpVersionMajor": 1,
"httpVersionMinor": 1,
"httpVersion": "1.1",
"complete": true,
"rawHeaders": [
"Content-Type",
"text/plain; charset=utf-8",
"X-Content-Type-Options",
"nosniff",
"Date",
"Sun, 21 Aug 2022 22:05:50 GMT",
"Content-Length",
"19",
"Connection",
"close"
],
"rawTrailers": [],
"aborted": false,
"upgrade": false,
"url": "",
"method": null,
"statusCode": 404,
"statusMessage": "Not Found",
"_consuming": false,
"_dumped": true
},
"name": "OPError"
}
}
```https://framagit.org/framasoft/peertube/documentation/-/issues/19Add webfinger supported endpoint documentation2022-09-25T10:18:42ZChocobozzzAdd webfinger supported endpoint documentationSee https://github.com/Chocobozzz/PeerTube/issues/5204See https://github.com/Chocobozzz/PeerTube/issues/5204https://framagit.org/framasoft/peertube/official-plugins/-/issues/49Creation of new user via openid-connect does not work correctly2022-09-14T17:49:40ZxundeenergieCreation of new user via openid-connect does not work correctlyI have openid-connect in my setup. And i use the "name" property for the username, not the "uid"-property.
My uid has the convention "name.surname" and the name-property hat only "name"
A new user is created as "_ame__urname".
I can no...I have openid-connect in my setup. And i use the "name" property for the username, not the "uid"-property.
My uid has the convention "name.surname" and the name-property hat only "name"
A new user is created as "_ame__urname".
I can not edit the profile. Login is not possible.
When i delete the user "_ame__urname" and create a new user with "name" as username, and then change from "local auth" to "openid-auth", i can login via openid.
So i think, the "Username property" from openid-connect settings is correctly taken for authentication, but not for creation of a new user.https://framagit.org/framasoft/peertube/peertube-plugin-quickstart/-/issues/2Demonstrate how to translate in frontend2022-08-28T13:37:12ZJohn LivingstonDemonstrate how to translate in frontendI think it would be nice to change this line:
https://framagit.org/framasoft/peertube/peertube-plugin-quickstart/-/blob/master/client/common-client-plugin.js#L2
So it uses peertubeHelpers.translate («Hello world» is already in the demo...I think it would be nice to change this line:
https://framagit.org/framasoft/peertube/peertube-plugin-quickstart/-/blob/master/client/common-client-plugin.js#L2
So it uses peertubeHelpers.translate («Hello world» is already in the demo translation files).
NB: by doing so, the register function must be async.
I did it here for example: https://framagit.org/Livingston/peertube-plugin-quickstart-typescript/-/blob/main/client/common-client-plugin.tshttps://framagit.org/framasoft/peertube/official-plugins/-/issues/48LDAP Plugin Bind Password field is in clear.2022-07-05T20:39:30ZPhilippe Lhardypl@artisanlogiciel.netLDAP Plugin Bind Password field is in clear.This is a minor issue.
auth-ldap 0.0.12 plugin parameters display ldap Bind Password in clear.
This is an usual practice to never display passwords by default.
Having an eye toggle icon to display password only on request would be grea...This is a minor issue.
auth-ldap 0.0.12 plugin parameters display ldap Bind Password in clear.
This is an usual practice to never display passwords by default.
Having an eye toggle icon to display password only on request would be great.
This request comes from a real use case :
On remote support to check ldap configuration from a customer controled environement, once customer displays ldap plugin parameters it is too late, password was already displayed.https://framagit.org/framasoft/peertube/official-plugins/-/issues/47peertube-plugin-auth-openid-connect: Using Authentik - no access token provided2022-07-04T12:14:56ZLars Buddenbergpeertube-plugin-auth-openid-connect: Using Authentik - no access token provided### Describe the current behavior
After setting up oidc authentication with the `auth-openid-connect` plugin version `0.1.0` with Authentik as provider I get the following error:
```
[tube.koyax.org:443] 2022-07-04 11:44:55.098 debug:...### Describe the current behavior
After setting up oidc authentication with the `auth-openid-connect` plugin version `0.1.0` with Authentik as provider I get the following error:
```
[tube.koyax.org:443] 2022-07-04 11:44:55.098 debug: Checking getPluginValidator parameters {
"parameters": {
"pluginName": "auth-openid-connect",
"pluginVersion": "0.1.0",
"authName": "openid-connect"
}
}
[tube.koyax.org:443] 2022-07-04 11:44:55.099 debug: Checking getExternalAuthValidator parameters {
"parameters": {
"pluginName": "auth-openid-connect",
"pluginVersion": "0.1.0",
"authName": "openid-connect"
}
}
[tube.koyax.org:443] 2022-07-04 11:44:55.099 debug: Forwarding auth plugin request in openid-connect of plugin peertube-plugin-auth-openid-connect.
[tube.koyax.org:443] 2022-07-04 11:44:55.102 info: 2a02:: - - [04/Jul/2022:11:44:55 +0000] "GET /plugins/auth-openid-connect/0.1.0/auth/openid-connect HTTP/1.0" 302 908 "https://tube.koyax.org/login?externalAuthError=true" "Firefox"
[tube.koyax.org:443] 2022-07-04 11:44:56.548 debug: Checking getPluginValidator parameters {
"parameters": {
"pluginName": "auth-openid-connect"
}
}
[tube.koyax.org:443 peertube-plugin-auth-openid-connect] 2022-07-04 11:44:56.549 error: Error in handle callback. {
"err": {
"stack": "TypeError: no access token provided\n at Client.requestResource (/data/plugins/node_modules/openid-client/lib/client.js:1143:13)\n at Client.userinfo (/data/plugins/node_modules/openid-client/lib/client.js:1255:33)\n at handleCb (/data/plugins/node_modules/peertube-plugin-auth-openid-connect/main.js:276:41)\n at runMicrotasks (<anonymous>)\n at processTicksAndRejections (node:internal/process/task_queues:96:5)",
"message": "no access token provided"
}
}
[tube.koyax.org:443] 2022-07-04 11:44:56.551 info: 2a02:: - - [04/Jul/2022:11:44:56 +0000] "POST /plugins/auth-openid-connect/router/code-cb HTTP/1.0" 302 102 "-" "Firefox"
[tube.koyax.org:443] 2022-07-04 11:44:56.581 debug: Serving de-DE HTML language {
"paramLang": "login",
"acceptLanguage": "de,en-GB;q=0.8,en-US;q=0.5,en;q=0.3"
}
[tube.koyax.org:443] 2022-07-04 11:44:56.583 info: 2a02:: - - [04/Jul/2022:11:44:56 +0000] "GET /login?externalAuthError=true HTTP/1.0" 200 12046 "-" "Firefox"
[tube.koyax.org:443] 2022-07-04 11:44:56.732 debug: Executed SQL request - Executing (default): SELECT "id", "clientId", "clientSecret", "grants", "redirectUris", "createdAt", "updatedAt" FROM "oAuthClient" AS "OAuthClientModel" LIMIT 1;
[tube.koyax.org:443] 2022-07-04 11:44:56.736 info: 2a02:: - - [04/Jul/2022:11:44:56 +0000] "GET /api/v1/oauth-clients/local HTTP/1.0" 304 - "https://tube.koyax.org/login?externalAuthError=true" "Firefox"
[tube.koyax.org:443] 2022-07-04 11:44:56.743 info: 2a02:: - - [04/Jul/2022:11:44:56 +0000] "GET /api/v1/config/ HTTP/1.0" 304 - "https://tube.koyax.org/login?externalAuthError=true" "Firefox"
[tube.koyax.org:443] 2022-07-04 11:44:56.812 info: 2a02:: - - [04/Jul/2022:11:44:56 +0000] "GET /api/v1/videos/languages HTTP/1.0" 304 - "https://tube.koyax.org/login?externalAuthError=true" "Firefox"
```
### Steps to reproduce
1. Install Peertube and Authentik
2. Create a oidc provider in Authentik and configure it `auth-openid-connect`
3. Try to log in via open id
### Describe the expected behavior
Login succeeds.
### Additional information
* PeerTube instance:
* URL: https://tube.koyax.org
* Version: 4.2.2-bullseye
* Dockerized
* Nginx Reverse Proxy
* Default reverse Proxy settings from peertube documentation without performance tuning
* Browser name, version and platforms on which you could reproduce the bug: Firefox, Chrome, Edge, Gnome Web
**Nginx access log:**
```
2a02:XXXX - - [04/Jul/2022:13:44:55 +0200] "GET /plugins/auth-openid-connect/0.1.0/auth/openid-connect HTTP/2.0" 302 908 "https://tube.koyax.org/login?externalAuthError=true" "Mozilla/5.0 (X11; Linux x86_64; rv:104.0) Gecko/20100101 Firefox/104.0"
2a02:XXXX - - [04/Jul/2022:13:44:56 +0200] "POST /plugins/auth-openid-connect/router/code-cb HTTP/2.0" 302 102 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:104.0) Gecko/20100101 Firefox/104.0"
2a02:XXXX - - [04/Jul/2022:13:44:56 +0200] "GET /login?externalAuthError=true HTTP/2.0" 200 4950 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:104.0) Gecko/20100101 Firefox/104.0"
2a02:XXXX - - [04/Jul/2022:13:44:56 +0200] "GET /api/v1/oauth-clients/local HTTP/2.0" 304 0 "https://tube.koyax.org/login?externalAuthError=true" "Mozilla/5.0 (X11; Linux x86_64; rv:104.0) Gecko/20100101 Firefox/104.0"
2a02:XXXX - - [04/Jul/2022:13:44:56 +0200] "GET /api/v1/config/ HTTP/2.0" 304 0 "https://tube.koyax.org/login?externalAuthError=true" "Mozilla/5.0 (X11; Linux x86_64; rv:104.0) Gecko/20100101 Firefox/104.0"
2a02:XXXX - - [04/Jul/2022:13:44:56 +0200] "GET /api/v1/videos/languages HTTP/2.0" 304 0 "https://tube.koyax.org/login?externalAuthError=true" "Mozilla/5.0 (X11; Linux x86_64; rv:104.0) Gecko/20100101 Firefox/104.0"
```
**Authentik Trace Logs**
Please pm me. I'm happy to share, but would rather not post them public.https://framagit.org/framasoft/peertube/official-plugins/-/issues/45peertube-plugin-auth-openid-connect: support multiple openid connect providers2022-03-29T18:53:43Zdecentral1sepeertube-plugin-auth-openid-connect: support multiple openid connect providersI'd like to support connecting to realm1 & realm2 on id.example.com from my single peertube instance. I'd ideally have two buttons and each user knows which button they can click for their account. Or support connecting to id1.example.co...I'd like to support connecting to realm1 & realm2 on id.example.com from my single peertube instance. I'd ideally have two buttons and each user knows which button they can click for their account. Or support connecting to id1.example.com & id2.example.com.
In essense, multiple OpenID Connect providers.
This is something that Nextcloud supports via https://apps.nextcloud.com/apps/sociallogin:
![image](/uploads/621003f0e536ec40b0cc8517f96415c1/image.png)https://framagit.org/framasoft/peertube/search-index/-/issues/37Bypass the node server to serve static files directly from web server2022-01-31T13:09:51ZThomasthomas.citharel@framasoft.orgBypass the node server to serve static files directly from web serverIs that doable? At least for assets?Is that doable? At least for assets?ChocobozzzChocobozzzhttps://framagit.org/framasoft/peertube/official-plugins/-/issues/42allow lower quality in transcoding-custom-quality2023-10-10T07:33:38ZTélé Millevachesallow lower quality in transcoding-custom-qualityThe lowest quality setting (named "Default") of plugin "transcoding-custom-quality" yields almost twice the video stream size of PeerTube's actual default. Lower settings would be welcome to fill the gap.
Observed :
* On a given video,...The lowest quality setting (named "Default") of plugin "transcoding-custom-quality" yields almost twice the video stream size of PeerTube's actual default. Lower settings would be welcome to fill the gap.
Observed :
* On a given video, PeerTube default encoding yields a 2,4Mbps 1080p video stream : https://video.telemillevaches.net/w/pKuGPCSfba2qGDpJm5eivG?start=11m22s
* On the same video, the lowest (named "Default") encoding quality setting of "transcoding-custom-quality" yields a 4Mbs 1080p video stream : https://video.telemillevaches.net/w/7tZ55bTiv3bcnZzjzrxjJg?start=11m22s
Expected :
* One or various intermediate qualities to better balance image quality and stream bandwidth.
Proposal :
* provide a "default" quality that yields the same result as not using the plugin at all
* provide two other steps and rename profiles accordingly :
```javascript
registerSetting({
name: 'crf',
label: 'Quality',
type: 'select',
options: [
{ label: 'Default', value: <actual PeerTube default value> },
{ label: 'Better', value: <one third less from default to 23> },
{ label: 'Even better', value: <two thirds less from default to 23> },
{ label: 'Good', value: 23 },
{ label: 'Very Good', value: 20 },
{ label: 'Excellent', value: 17 },
{ label: 'Insane', value: 14 }
],
descriptionHTML: 'Increasing quality will result in bigger video sizes',
private: true,
default: defaultCRF
})
```https://framagit.org/framasoft/peertube/official-plugins/-/issues/40feature request: set quota via OIDC2021-11-21T08:40:07ZLurkarsfeature request: set quota via OIDCAdd a profile field to control quota of the corresponding account.Add a profile field to control quota of the corresponding account.https://framagit.org/framasoft/peertube/official-plugins/-/issues/39auth-openid-connect: can't change email of user2021-11-03T17:00:41ZKlorydrykauth-openid-connect: can't change email of userHello,
when changing the address of the account retrieved by openId Connect when scope is configured to "openid profile", we get an error "the account already exists" when trying to log for the first time with this new email address.
The...Hello,
when changing the address of the account retrieved by openId Connect when scope is configured to "openid profile", we get an error "the account already exists" when trying to log for the first time with this new email address.
The workaround: move the account to local, then move it back to "openid connect".
Peertube 3.4.0
auth-openid-connect 0.0.5https://framagit.org/framasoft/peertube/official-plugins/-/issues/38peertube-plugin-auth-saml2 with Atlassian crowd as idP2021-08-25T11:29:00ZNcxxpeertube-plugin-auth-saml2 with Atlassian crowd as idPI'm currently setting up SAML with Atlassian crowd as identity provider. There is no documentation about this case, but in general I fill in all the parameters by analogy with the instructions at https://framagit.org/framasoft/peertube/o...I'm currently setting up SAML with Atlassian crowd as identity provider. There is no documentation about this case, but in general I fill in all the parameters by analogy with the instructions at https://framagit.org/framasoft/peertube/official-plugins/tree/master/peertube-plugin-auth-saml2
When I want to login using SAML I get a generic error from the peertube website and the logs show:
<details><summary>Click to expand</summary>
"stack": "Error: SessionIndex not an attribute of AuthnStatement.\n at get_session_info (/data/plugins/node_modules/saml2-js/lib-js/saml2.js:469:11)\n at /data/plugins/node_modules/saml2-js/lib-js/saml2.js:679:24\n at nextTask (/data/plugins/node_modules/async/dist/async.js:5756:27)\n at next (/data/plugins/node_modules/async/dist/async.js:5764:13)\n at /data/plugins/node_modules/async/dist/async.js:324:20\n at /data/plugins/node_modules/saml2-js/lib-js/saml2.js:675:14\n at nextTask (/data/plugins/node_modules/async/dist/async.js:5756:27)\n at next (/data/plugins/node_modules/async/dist/async.js:5764:13)\n at /data/plugins/node_modules/async/dist/async.js:324:20\n at /data/plugins/node_modules/saml2-js/lib-js/saml2.js:626:20\n at nextTask (/data/plugins/node_modules/async/dist/async.js:5756:27)\n at next (/data/plugins/node_modules/async/dist/async.js:5764:13)\n at /data/plugins/node_modules/async/dist/async.js:324:20\n at /data/plugins/node_modules/saml2-js/lib-js/saml2.js:600:16\n at Timeout._onTimeout (/data/plugins/node_modules/saml2-js/lib-js/saml2.js:311:17)\n at listOnTimeout (internal/timers.js:554:17)\n at processTimers (internal/timers.js:497:7)",,
"err": {,
"message": "SessionIndex not an attribute of AuthnStatement.",
},
},
</details>
then I'm resetting all and have different error:
<details><summary>Click to expand</summary>
at processTicksAndRejections (internal/process/task_queues.js:97:5),
"message": "SessionIndex not an attribute of AuthnStatement.",
[records.gurtam.net:443 peertube-plugin-auth-saml2] 2021-08-25 09:07:35.012 error: Error SAML 2 assert. {,
"stack": "Error: SessionIndex not an attribute of AuthnStatement.\n at get_session_info (/data/plugins/node_modules/saml2-js/lib-js/saml2.js:469:11)\n at /data/plugins/node_modules/saml2-js/lib-js/saml2.js:679:24\n at nextTask (/data/plugins/node_modules/async/dist/async.js:5756:27)\n at next (/data/plugins/node_modules/async/dist/async.js:5764:13)\n at /data/plugins/node_modules/async/dist/async.js:324:20\n at /data/plugins/node_modules/saml2-js/lib-js/saml2.js:675:14\n at nextTask (/data/plugins/node_modules/async/dist/async.js:5756:27)\n at next (/data/plugins/node_modules/async/dist/async.js:5764:13)\n at /data/plugins/node_modules/async/dist/async.js:324:20\n at /data/plugins/node_modules/saml2-js/lib-js/saml2.js:626:20\n at nextTask (/data/plugins/node_modules/async/dist/async.js:5756:27)\n at next (/data/plugins/node_modules/async/dist/async.js:5764:13)\n at /data/plugins/node_modules/async/dist/async.js:324:20\n at /data/plugins/node_modules/saml2-js/lib-js/saml2.js:600:16\n at Timeout._onTimeout (/data/plugins/node_modules/saml2-js/lib-js/saml2.js:311:17)\n at listOnTimeout (internal/timers.js:554:17)\n at processTimers (internal/timers.js:497:7)",
</details>
And don't know what i can do else. On idP (Atlassian Crowd) side i don't have any settings than I can setup, just url to peertube. So maybe you have some advice for settings on peertube side?https://framagit.org/framasoft/peertube/clients/python/-/issues/1Needs update for version 3.3 of PeerTube2021-08-11T21:45:24ZFlorentNeeds update for version 3.3 of PeerTubeHi there!
The Python API is compatible with version 2.4 of PeerTube. But version 3.3 is the current one now.
I would like to contribute by generating the new API through openapi-generator, but it seems there are some changes done after...Hi there!
The Python API is compatible with version 2.4 of PeerTube. But version 3.3 is the current one now.
I would like to contribute by generating the new API through openapi-generator, but it seems there are some changes done after the generation. A guide to update the API would be appreciated :).
Cheers and thanks for your help :pray:
Florenthttps://framagit.org/framasoft/peertube/joinpeertube/-/issues/53Add last peertube version number2021-07-06T07:27:10ZspfAdd last peertube version numberIn order to know if an instance is up to date, we have version number but it difficult to immediatly know if the lastest or not.In order to know if an instance is up to date, we have version number but it difficult to immediatly know if the lastest or not.https://framagit.org/framasoft/peertube/search-index/-/issues/30show available subtitles languages for the video results2022-12-28T10:01:34ZAlbatroz Jeremiasshow available subtitles languages for the video resultsWhat happens?
![image](/uploads/04b2f0e78c2fe77af7154e69d8398398/image.png)
in the result of each video doesn't show the subtitles available.
What I wish could be:
Well, adding a possiblity either to add a new field in the search res...What happens?
![image](/uploads/04b2f0e78c2fe77af7154e69d8398398/image.png)
in the result of each video doesn't show the subtitles available.
What I wish could be:
Well, adding a possiblity either to add a new field in the search results or always show the subtitles languages available. or add as a filter to the search :)
i'll check the code for making a PR maybe..https://framagit.org/framasoft/peertube/documentation/-/issues/15Add a search box2021-04-20T13:11:50ZChocobozzzAdd a search boxFrom https://framagit.org/framasoft/peertube/joinpeertube/-/issues/36From https://framagit.org/framasoft/peertube/joinpeertube/-/issues/36https://framagit.org/framasoft/peertube/instances-peertube/-/issues/43Authentication around Adding instances?2021-02-11T19:17:05ZKinetixAuthentication around Adding instances?This is just a feature request. I would love to see the 'Add' function only available with some simple authentication.This is just a feature request. I would love to see the 'Add' function only available with some simple authentication.https://framagit.org/framasoft/peertube/search-index/-/issues/27Handle instances being temporarily down2021-02-05T10:43:57ZThomasthomas.citharel@framasoft.orgHandle instances being temporarily downFor instance it looks like this right now because an instance is down and we can't show their pictures
![image](/uploads/e94c3cc734d7ab0f508086825ab6e6d7/image.png)
Ideas to solve this:
* If loading fails, show a placeholder picture
* I...For instance it looks like this right now because an instance is down and we can't show their pictures
![image](/uploads/e94c3cc734d7ab0f508086825ab6e6d7/image.png)
Ideas to solve this:
* If loading fails, show a placeholder picture
* If loading fails, completely hide the search result
* Use #26 to cache pictures as wellhttps://framagit.org/framasoft/peertube/search-index/-/issues/26Proxify preview pictures2021-02-05T10:43:57ZThomasthomas.citharel@framasoft.orgProxify preview picturesSo that you don't hotlink.
Would also allow to have a strict CSP.So that you don't hotlink.
Would also allow to have a strict CSP.