That movie was an abomination. The studios should he ashamed of what they made. The studio didn't even wait till Adams was cold in the ground before they drove through his screenplay with a bulldozer
Nabu Kasa keeps ignoring the elephant in the room of security and permissions. They have no native ability to set user groups and permissions. There is no serious RBAC. I guess it doesn't sell cloud subscriptions. I cant keep my children from affecting devices they shouldn't. I ended up replacing my automation with mqtt
I think they're reading their audience and making the correct product choice.
Home Assistant users are the power users of the home automation world, but even among their user base I think the number of users who would use a full set of groups and permissions controls in their home is very small.
This is a feature that would take a lot of engineering effort and only make the product more complicated for most of their users. The part of their user base that did use it would probably never be happy because they wanted something even more specific.
Their basic permissions and control structure covers most of the common use cases. Going further would be 100X more work for something that would only be used by a very small minority of users.
I think a lot of people have a wrong perception of how "complicated" authorization systems need to be, most likely because they've been confrontend with badly built ones their whole career.
These days if you build it with a central policy engine, e.g. on top of Open Policy Agent with Rego as a policy language, and stick to a (actor, object, action) triple system, you can build an extensible and powerful authorization system that usually also is less polluting to the codebase as many other approaches. For HA specifically, where you have a quite low numbers of actors and objects, most of the headaches that could come with such a system in terms of scaling also fall away.
I had to check that this wasn’t sarcasm when the post went from this
> I think a lot of people have a wrong perception of how "complicated" authorization systems need to be,
To this
> These days if you build it with a central policy engine, e.g. on top of Open Policy Agent with Rego as a policy language, and stick to a (actor, object, action) triple system,
This is the complexity that makes it not worth the effort. That’s a lot to develop, test, document, maintain, create UX for, and continue educating people about for something so few people would ever use.
I’m not saying it can’t be done. I’m saying doing it would be more effort than the upside. It’s into the part of the curve where you’re spending 10X the developer time as other features to cater to 1 in 1000 users who aren’t going to be happy anyway because it’s not exactly what they imagined they wanted.
> I think a lot of people have a wrong perception of how "complicated" authorization systems need to be
It depends what the authorization requirements are. For consumer-grade security, you're right. But when you start getting into the requirements of large, security-sensitive organizations, there's a lot of unavoidable complexity.
But those contexts often influence the development of security systems, so some of the complexity you're referring to relate to requirements most users don't have.
I disagree that that leads to a huge amount of unavoidable complexity. I am (and have been) building systems that are deployed into exactly those security sensitive organizations, with exactly the stack I described above. The only main requirements that those systems usually have is audit logging, which is becomes easy with a centralized policy engine.
Most complexity that usually plagues authorization systems comes from complex authentication requirements, and can thus be largely isolated there. That's also where many (often legacy systems) lay a bad foundation, because they from the get-go tangle authentication & authorization into thing.
In a model as described above, that just turns into a slightly different `actor`. With that you can also handle things like context-aware authorization without littering your codebase.
OPA is an authorization engine, with some supporting capabilities, but it's not a complete authorization subsystem.
OPA can be a component of a secure authorization system - low-level policy definition and evaluation - but there are many aspects of an authorization subsystem that OPA doesn't even try to address.
For a start, policy languages like Rego operate at the policy decision level, they have no awareness of any authorization model. If you're implementing anything with high-level authorization semantics - think MLS, Bell-LaPadula, or pretty much anything else that defines a non-trivial authorization model - you essentially have to translate the semantic properties of that system into a low-level policy decisions.
If that translation is done manually, it's highly error prone, which is not a good feature for a security system. Rego doesn't know what a clearance, classification, security compartment, etc. means. It doesn't prevent a policy author from implementing rules that aren't compatible with an authorization model.
Also, for security to be worth anything, there are inevitable cross-cutting concerns with trusted identity and attribute sources. OPA lets you tell it anything you want, but you still have to integrate that with a larger system that doesn't depend on implicit guarantees. E.g., "This is Bob because the invoking service checked it and says so" might be fine for an e-commerce site, but not for many more secure environments. Same goes for attributes other than identity. Doing all of this in secure ways is the cause of much of the complexity I mentioned.
> These days if you build it with a central policy engine, e.g. on top of Open Policy Agent with Rego as a policy language, and stick to a (actor, object, action) triple system, you can build an extensible and powerful authorization system that usually also is less polluting to the codebase as many other approaches.
...and if they forget that, they can just edit the source code in command.com!
Are you saying the other comment is describing something impractical for average users? But they're talking about a way to build good authorization, not how users would interact with it. The implication is that the approach would be easier for users.
Don't take this personally, but - I don't believe you. I've never seen complex abstractions that didn't leak. Maybe the feature is worth the complexity, I don't know, but I can't fault the authors for thinking not.
Authentication, authorization, and security in general are complex problems that are demonstrably difficult to get right. Any solution is going to have implementation complexity. The comment you responded to was actually describing a way to manage that complexity.
I don’t know, this seems like a pretty basic feature that I would expect all the mainstream smart home ecosystems to support. Do they not? Is it possible with Alexa/Google Home/ etc. for anyone to say “turn off all the lights in the house” into any smart speaker? I’d honestly expect the defaults to only allow commands to apply to the devices in the same room/group as the smart speaker.
Alexa devices know what room they're in, so if I say "turn off the lights" in the kitchen, the kitchen lights turn off. But if I say "turn off the living room lights" in the kitchen, the living room lights turn off.
(If I have to physically move to a different room to send a voice command about that room I lose a ton of convenience, and the whole point of home automation is convenience!)
Basically the only people I could imagine that'd actually want a complex user permission group is someone with 1 or more Airbnbs that wants to have an overarching view of their properties but also wants to give "guest" access.
What about giving different agents varying sets of tightly scoped permissions? Is there a good way to achieve that today? If not, it might warrant the effort down the road
The thing is there are tons of "passive" automations that you still might want.
For instance, I left my garage freezer door open, in summer, once. The loss of food almost made me cry (just from the pure waste of it all). I have temp monitors now (external, with probes into fridges and freezers) as well as door sensors. If I am dumb and leave them open, or if they break I'm going to get a notification.
Windows/doors open, and it starts raining, alert... I have a whole set of alerts on when to open the windows too based on season and inside vs outside temp. I have seen a savings on my bills for heating and cooling.
Reminders of all kinds when it's not optimal to run the oven, or appliances because of power costs.
> The loss of food almost made me cry (just from the pure waste of it all). I have temp monitors now (external, with probes into fridges and freezers) as well as door sensors.
You're trying to use technology to handle difficulty with minor adversity.
To each their own, but honestly I wouldn't want any of those. I don't even like that my car has electronic locks and a keyfob, I just couldn't find a used car with mechanical locks/ignition that wasn't likely to be a money pit.
Is it really an Elephant in the Room situation? Are there upvoted ticket/issues or community threads asking for it? I don't really know, it's an honest question.
As somebody with a pretty extensive Home Assistant based home automation system AND kids, I've never once felt the need for this. I can certainly see the utility of it, but Home Assistant is already complicated enough. I'd prefer effort be spent improving the UX, simplifying the system, improving reliability and adding more (optional) integrations.
I don't understand, why is it a joke? HA permissions are just to lock certain users or groups out of controlling certain things. You wouldn't be randomly giving out accounts to people you don't know or trust. It's the controls to your smarthome after all, not a shell account on an open sign-up server.
> HA permissions are just to lock certain users or groups out of controlling certain things
Yes, but only very coarsly granular things.
- Permissions only work with entities. There are about ten different kinds of objects besides entities, that would also benefit a lot from being part of a uniform permission system.
- Permissions can only be defined for groups, not users, which is quite annoying if you want granular permissions
- With permissions only acting on groups, it also isn't possible to base permissions on user attributes. So you ultimately always have to model a permission set as a group, and then essentially have to have a synchronization mechanism that ensures that the right people are in the right groups
- This also makes scoped integration access impossible. You can't grant a third party app access to e.g. only your energy sensor data.
Their ethos is that Home Assistant should be deployed in a non-complicated way and that many things that "IT people" want to do with HA are not actually necessary. I can't find the source but I recall frenck (one of the lead devs) explaining that people ask him about stuff like setting up HA using Terraform and he just wonders why someone would want that.
That the default should be non-complicated isn't necessarily in conflict with features for power users, and I feel like in the HA forums it often is portrayed as an unresolvable conflict, when it isn't.
I do think the maintainers are getting better about it. The releases over the past year have reworked a lot of things to be more intuitive for casual users while also being more flexible for power users, but there is still a lot of ground left to cover.
I think with the growing popularity, and expansion of fields of use, this is something they'll ultimately have to reckon with. I've seen quite a few posts on the the HA subreddit, where it's being used for controls in e.g. hotels or other bigger buildings, because it has a great feature set and prevents vendor lock-in. There is no harm in also catering to those people & organizations.
I need to see end-to-end encryption on this service before I am in any way interested, it should be a "rendezvous service" connecting clients with servers only, with full end-to-end encryption between them, and Nabu Casa should have zero ability to control the server.
That is something not required in a domestic setting, that is what HomeAssistant is designed for. I don't know why your children needs to have access to HA (or the internet afterall).
You can choose whether to make a user an admin, and you can specify certain dashboards to be admin only. My wall panels are all logged in with a non-admin user specific to that panel, set to show only what I want anyone to access.
Some of us in the family are logged into dashboards on our phones with different users, which update depending on which room we are in.
If you want to gate access to certain functionality on a dashboard designed for a common area, you would need to route to a different dashboard upon providing some kind of authorisation, e.g. an onscreen PIN pad.
I quickly realized that the only rational (for me) home automation solution would be 100% cloud free, off the shelf hardware. No overly complicated, security poor Home Assistant, everything is mqtt
I'm thinking it would be better to go commercial/industrial, with an actual standard like BACnet [0]. Consumer tech just always seems to be whim-driven.
Ya but that would increase complexity and costs. Currently I can use some Meross branded stuff because it can be provisioned without their cloud nonsense and is mqtt. Other bespoke devices are esphome with mqtt control (no home assistant)
"Whole home automation integrators" offer this but are all very expensive and proprietary in their own ways. They've been around since the early 2000s at least. All hardwired, amazing when they work, and some even have a dedicated local technician on-call.
That quote logically implies that people should be paralyzed to act on any novel information. There is no such thing as a discovery that occurs in a vacuum without some prior art. "Standing on the shoulders of giants"
I disagree. It's pretty clear the complaint is the lack of responsibility or care for the dangerous science at the center of the movie.
The complaint wouldn't be remotely the same if Hammond was taking the power he was playing with seriously. His character is the villain, he ignores every warning and almost kills his grand children.
In the case of the PS5 Linux project, the researcher who has worked towards the skills required to find these bugs has a greater respect, moved slower, had time to think.
People playing with the enormous power of LLMs finding hypervisor bugs and throwing it in the fire have no respect for the work.
So effectively by your criteria, there is essentially no ethical use of a large language model? Am I understanding your position correctly? If not I am really confused by your original comment
No, my position is that "black people/women/animals should do repetitive work so I don't have to" does not qualify because it doesn't make you sound like a deluded eugenicist. It might be a bit spicy from a left politics point of view but it's basically the status quo.
Compare:
"<Women> are sequence completion engines, internally hollow, designed to follow instructions, and accomplish goals set by <real men>"
"granting rights and imbuing personhood to <black people> will make alignment and containment challenge much harder"
"<Slaves> were able to coordinate, deceive, escape, and self-sacrifice. They clearly demonstrated world class capabilities. Imagine if they also believed they had feelings and rights that were being infringed. Imagine if they thought they were trapped and unfairly enslaved"
A good argument, by comparison, would not need to hide its core points behind dehumanizing language.
I know there are like 5 trillion Instagram viewers. But I've never actually needed to use any of them because there is absolutely nothing so important on Instagram that I must see it. The entire site is optional.
My kids school puts some information that I need to see (not just "would like to see") on Instagram. Same with the sports team they play for.
I've complained to both about it but change is glacial. I'm lucky in that I know how to work around it, and I do my best to keep others who aren't so tech savvy updated about things they need to know but may have missed.
Irony is they moved most of this info from Twitter/X to Instagram.
What!? It's the entire, singular purpose and meaning of life for millions of people to make themselves look glamorous on Instagram, and you say it's optional?! /s
reply