89 Commits

Author SHA1 Message Date
Ingo Oppermann
89cc42c4b9
Add cluster IAM, update dependencies 2023-05-30 21:24:12 +02:00
Ingo Oppermann
e9034aa171
Create identity and access packages for IAM 2023-05-25 16:16:29 +02:00
Ingo Oppermann
710d5c595f
Merge branch 'iam' into clusteriam 2023-05-25 11:05:26 +02:00
Ingo Oppermann
10df8d51b1
Simplify IAM user config, only create users and policies if not previously run 2023-05-24 22:28:24 +02:00
Ingo Oppermann
3c89cbb831
Create identities for basic auth access to mount points 2023-05-24 14:29:14 +02:00
Ingo Oppermann
ccac2ffd5d
Various updates
- rebrand group to domain
- move IAM to the API (rest and graph) for enforcing "process:" rules
- add abstraction layer for restream store in order to decouple internal format from format on disk
- move playout handler into restreamHandler
- remove user from restream interface
- add TaskID type that includes the process id and its domain
2023-05-23 15:47:06 +02:00
Ingo Oppermann
ead6e64442
Merge branch 'dev' into iam 2023-05-15 21:17:23 +02:00
Ingo Oppermann
adf43eaf01
Merge branch 'dev' into cluster 2023-05-12 12:59:30 +02:00
Ingo Oppermann
e0fdc37e8d
Bump version to 16.13.0 2023-05-08 12:52:14 +02:00
Ingo Oppermann
cd58cf3df7
Fix panics if cluster is not enabled 2023-05-05 11:56:39 +02:00
Ingo Oppermann
7f59c188cf
Remove node storage, use raft configuration instead; re-establish file and stream proxying 2023-05-04 19:49:53 +02:00
Ingo Oppermann
d201921a33
Allow to provide complete cluster configuration
Replace CORE_CLUSTER_JOIN_ADDRESS with CORE_CLUSTER_PEERS. This is
a comma separated list of cluster members with their IDs of the form
ID@host:port

On startup the node tries to connect to all the peers. In case of
sudden deaths of a node this will allow to find back into the
cluster. The list in CLUSTER_PEERS is a starting point of known
peers. Other node that are not in that list can still join the
cluster.

File and stream proxy has been moved to the Proxy type.
2023-05-03 16:13:05 +02:00
Ingo Oppermann
4eb0258ba4
Add automatic bootstrap and recovery 2023-05-02 15:49:46 +02:00
Ingo Oppermann
386bdc0b6e
WIP: add emergency leader, api circuit breaker 2023-04-21 17:19:21 +02:00
Ingo Oppermann
27f19f9188
WIP: internal API 2023-04-17 14:01:20 +02:00
Ingo Oppermann
7643959bf8
WIP: raft leadership 2023-04-13 21:44:24 +02:00
Ingo Oppermann
e6b64dbe97
WIP: raft 2023-04-13 09:42:19 +02:00
Ingo Oppermann
ffdf6d3323
Merge branch 'dev' into cluster 2023-04-12 15:27:38 +02:00
Ingo Oppermann
84817f137a
Merge branch 'dev' into iam 2023-04-03 15:44:16 +02:00
Ingo Oppermann
3149572a64
Fix freeing up S3 mounts 2023-03-17 18:40:20 +01:00
Ingo Oppermann
6e93c1d5a1
Get rid of $localhost pseudo user 2023-03-09 21:10:04 +01:00
Ingo Oppermann
a0ef3ab5ee
WIP: add /api/v3/iam/group/* endpoints 2023-03-09 19:03:58 +01:00
Ingo Oppermann
d101a76e9e
Change anon user to localhost user only if DisableLocalhost is set 2023-03-08 15:21:55 +01:00
Ingo Oppermann
8755117e92
Add /api/v3/iam/user endpoints 2023-03-07 16:31:58 +01:00
Ingo Oppermann
f3de5a338b
Merge branch 'dev' into iam 2023-02-22 11:57:56 +01:00
Ingo Oppermann
1c04961fc1
Fix tests 2023-02-21 12:57:33 +01:00
Ingo Oppermann
d77e4d7160
Bump version to 16.12.0 2023-02-20 17:31:29 +01:00
Ingo Oppermann
8215c20ae6
Fix basic auth, disable localhost, replace template func 2023-02-17 17:27:39 +01:00
Ingo Oppermann
ad4f392bd0
user only for api: 2023-02-17 10:30:38 +01:00
Ingo Oppermann
1e74f11f5e
WIP: policy update 2023-02-16 21:47:56 +01:00
Ingo Oppermann
acc4d7ec5a
WIP: verify policies for processes, rtmp, and srt. rewriter for local urls 2023-02-15 21:43:37 +01:00
Ingo Oppermann
74d0a96e1c
Merge branch 'dev' into iam 2023-02-14 19:08:37 +01:00
Ingo Oppermann
05a176370a
Fix missing filesystem metadata and middlewares 2023-02-14 16:16:35 +01:00
Ingo Oppermann
eac49ad11a
Define default policies to mimic current behaviour 2023-02-10 15:14:30 +01:00
Ingo Oppermann
312f65d110
WIP: add verfiers, fix bugs, implement middleware, support rtmp 2023-02-09 21:33:45 +01:00
Ingo Oppermann
11e55fc2c7
WIP: add casbin to access manager, allow to persist identities 2023-02-06 17:07:20 +01:00
Ingo Oppermann
8f1ff2d1a2
WIP: designing interfaces, detecting identity, enforcing policies 2023-02-03 17:43:06 +01:00
Ingo Oppermann
e9caa1b033
Merge branch 'dev' into casbin 2023-02-02 09:51:58 +01:00
Ingo Oppermann
2a3288ffd0
Use abstract filesystem for stores 2023-02-01 16:09:20 +01:00
Ingo Oppermann
49b16f44a8
Add templates for s3 filesystems 2023-01-31 15:54:40 +01:00
Ingo Oppermann
f519acfd71
Add S3 storage support 2023-01-31 14:45:58 +01:00
Ingo Oppermann
0147651de6
Extend placeholders
1. Allow variables in placeholders for parameter values, e.g.
   {rtmp,name=$processid}. The variable starts with a $ letter.
   The recognized variables are provided with the Replace func.

2. The template func recieves the process config and the name of
   the section where this placeholder is located, i.e. "global",
   "input", or "output".
2023-01-20 13:38:33 +01:00
Ingo Oppermann
e374f83377
Fix config timestamps
created_at represents the time when the configuration has been persisted to disk.
loaded_at represents the time when the configuration has actually been used.

If created_at is larger than loaded_at, then the Core needs a reload in order
to apply the latest configuration.

if created_at is lower than laoded_at, then the Core applied the latest
configuration.

The value of updated_at is irrelevant and shouldn't be used.
2023-01-19 16:13:53 +01:00
Ingo Oppermann
5b01fb55ef
Remove dependencies from core 2023-01-19 11:54:59 +01:00
Ingo Oppermann
05cc764ded
Change names of struct fields in adaptor 2023-01-13 10:19:41 +01:00
Ingo Oppermann
96eae9a539
Add adapter 2023-01-11 20:36:12 +01:00
Ingo Oppermann
8d64ee5d54
Add casbin test binary 2023-01-10 18:59:53 +01:00
Ingo Oppermann
1bbb7a9c1f
Use config locations for import and ffmigrage 2023-01-03 11:45:10 +01:00
Ingo Oppermann
17c9f6ef13
Test different standard location for config file
If no path is given in the environment variable CORE_CONFIGFILE, different
standard locations will be probed:
- os.UserConfigDir() + /datarhei-core/config.js
- os.UserHomeDir() + /.config/datarhei-core/config.js
- ./config/config.js
If the config.js doesn't exist in any of these locations, it will be
assumed at ./config/config.js
2023-01-03 07:55:55 +01:00
Ingo Oppermann
378a3cd9cf
Allow to set a soft memory limit for the binary itself
The setting debug.memory_limit_mbytes should not be used in conjuction
with debug.force_gc because the memory limit influences the garbage
collector.
2023-01-02 11:58:54 +01:00