| [09:23:46] | <mstenta[m]> | oh! that's good svenn7 ! |
| [09:23:53] | <mstenta[m]> | "almost"? |
| [09:50:09] | <mstenta[m]> | generalredneck: thanks for the OpenCollective contribution!! |
| [09:50:14] | <mstenta[m]> | Very generous! |
| [10:06:39] | * JustTB has joined #farmos |
| [10:16:52] | * JustTB has quit (Ping timeout: 248 seconds) |
| [10:48:56] | * leogaggl[m] has left #farmos ("Kicked by @appservice-irc:matrix.org : User has been idle for 30+ days.") |
| [10:52:28] | * ayushj_[m] has left #farmos ("Kicked by @appservice-irc:matrix.org : User has been idle for 30+ days.") |
| [10:52:30] | * xp42[m] has left #farmos ("Kicked by @appservice-irc:matrix.org : User has been idle for 30+ days.") |
| [11:23:06] | * spitz234[m] has quit (Quit: User has been idle for 30+ days.) |
| [11:38:41] | * munjoma[m] has left #farmos ("Kicked by @appservice-irc:matrix.org : User has been idle for 30+ days.") |
| [11:53:15] | <generalredneck[m> | Found you on the web... in https://www.drupal.org/project/restws/issues/1084144 :P |
| [11:54:41] | <mstenta[m]> | haha yup! that's me :-) |
| [11:54:44] | <generalredneck[m> | betcha can't guess what I'm trying to do |
| [11:55:24] | <mstenta[m]> | `PUT` request? |
| [11:55:49] | <generalredneck[m> | well I know CORS is a thing... I'm about to test out creating a log entity using Ajax |
| [11:56:16] | <mstenta[m]> | ah gotcha |
| [11:56:34] | <mstenta[m]> | have you seen farmOS.js? |
| [11:56:45] | <mstenta[m]> | https://github.com/farmOS/farmOS.js |
| [11:56:50] | <generalredneck[m> | no. |
| [11:57:07] | <generalredneck[m> | I saw an api package using pyton |
| [11:57:12] | <generalredneck[m> | didn't see that one |
| [11:57:33] | <mstenta[m]> | yes! we have both py and js libraries :-) |
| [11:57:47] | <generalredneck[m> | I considered duplicating it in PHP for funsies |
| [11:58:03] | <mstenta[m]> | farmOS.py is used in farmOS-client (Field Kit) |
| [11:58:07] | <mstenta[m]> | oops, i mean farmOS.js |
| [11:58:17] | <mstenta[m]> | ha! that's actually where it started... but we didn't continue the farmOS.php library yet... |
| [11:58:25] | <generalredneck[m> | but decided I would work on trying to convert a paper form into a webpage |
| [11:58:26] | <mstenta[m]> | https://github.com/farmOS/farmOS.php |
| [11:58:40] | <mstenta[m]> | oh neat! |
| [11:58:54] | <mstenta[m]> | pretty soon you'll be able to build "Field Modules" for use in Field Kit |
| [11:59:15] | <generalredneck[m> | ACTION uploaded an image: Peek 2019-12-30 10-56.gif (255KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/FvDyXtREtfTLzjpV... > |
| [11:59:41] | <generalredneck[m> | ☝️ something like that... where we show the number of eggs in the calendar days |
| [12:00:01] | <mstenta[m]> | oh neat!\ |
| [12:00:17] | <mstenta[m]> | can you put the egg count inside an egg-shaped graphic? :-) |
| [12:00:34] | <generalredneck[m> | should do it in a chicken and duck shaped graphic :P |
| [12:00:53] | <mstenta[m]> | even better |
| [12:01:21] | <generalredneck[m> | I could do it in drupal really easily but I was trying to do something not tied to the site. |
| [12:02:07] | <generalredneck[m> | learning exercise since I'm a super strong backend PHP dev first and lack luster JS dev at best |
| [12:03:18] | <mstenta[m]> | Yea cool! |
| [12:03:31] | <mstenta[m]> | In general, I would like to see more stuff developed in the frontend moving forward |
| [12:03:36] | <mstenta[m]> | That's part of the goal of Field Kit |
| [12:03:55] | <mstenta[m]> | Leveraging Drupal's backend API features/headless/etc more |
| [12:04:09] | <mstenta[m]> | Especially in D8! |
| [12:04:14] | <generalredneck[m> | yeah your data model lends itself well to the decoupled ideaology |
| [12:04:23] | <mstenta[m]> | That's the hope! |
| [12:05:09] | <mstenta[m]> | And I want to get to D8 as soon as possible... because people are starting to build stuff and I hate to pull the rug out with the inevitable breaking changes |
| [12:05:32] | <mstenta[m]> | At the very least, we can distinguish "farmOS 1.x API" from "farmOS 2.x API" |
| [12:05:53] | <mstenta[m]> | Lots of moving parts though... as always :-) |
| [12:05:56] | <generalredneck[m> | yeah I was wondering if you were going to try and translate it as much as possible verbetium or if you were going to take the opportunity to refactor |
| [12:06:09] | <mstenta[m]> | We have funding for it though - so the gears are in motion! |
| [12:06:37] | <mstenta[m]> | There will be some refactoring... but for the most part I think the general models are solid |
| [12:06:43] | <generalredneck[m> | I know field collections is a thing (I personall hate em) and d8... custom entities and fields are a breeze |
| [12:07:08] | <mstenta[m]> | Small example: I want to move away from using Field Collections, and create custom field types where we need them |
| [12:07:10] | <mstenta[m]> | Haha exactly! |
| [12:07:10] | <mstenta[m]> | You beat me to it ;-) |
| [12:07:34] | <generalredneck[m> | yeah since properties and fields are both 1st class citizens now |
| [12:07:41] | <mstenta[m]> | I actually wrote a shim module to make Field Collections work with restws in D7: https://www.drupal.org/project/restws_field_collection |
| [12:07:57] | <mstenta[m]> | But it will be nice to simplify those things |
| [12:08:03] | <generalredneck[m> | yeah I saw that and if I recall one of my clients uses it. |
| [12:08:11] | <mstenta[m]> | oh cool! :-) |
| [12:13:42] | <generalredneck[m> | I like writing SAAS style apps in D8. It's a great way to prototype. Example I'm currently rewriting Evercurrent since we at Four Kitchens bought it. and it's so much cleaner in D8. Not that you can't do simular tactics in D7 with xautoload, and enabling a composer based workflow... but you have to hack the 2 styles together because you are joining "old and busted" with "New hotness". |
| [12:13:42] | <generalredneck[m> | https://thumbs.gfycat.com/GoldenUnnaturalCoati-size_restricted.gif |
| [12:14:46] | <mstenta[m]> | haha yea |
| [12:14:56] | <mstenta[m]> | that's cool - i haven't heard of evercurrent |
| [12:15:15] | <generalredneck[m> | it's a lot like DropGuard |
| [12:15:33] | <generalredneck[m> | it's the only way that our support department can keep up with all 45 sites we have in one place |
| [12:17:18] | <generalredneck[m> | The idea behind it is have a dashboard of all the sites with their current project states in one place and be alerted of security upgrades when they are needed. Every Wednesday is Contrib security release window and every 3rd Wednesday is Core Release window... so we have to know :P |
| [12:17:34] | <mstenta[m]> | Oh that sounds very helpful |
| [12:17:54] | * sudokita[m] has left #farmos ("Kicked by @appservice-irc:matrix.org : User has been idle for 30+ days.") |
| [12:18:37] | <generalredneck[m> | yeah trying to manage that kinda thing via drush (when your clients are behind vpns) or the old school drupal update emails is really hard. |
| [12:26:47] | * lablab[m] has quit (Quit: User has been idle for 30+ days.) |
| [12:27:39] | * wimpertier[m] has quit (Quit: User has been idle for 30+ days.) |
| [12:34:56] | * applecreekacres[ has quit (Quit: User has been idle for 30+ days.) |
| [12:36:20] | <symbioquine_> | mstenta[m] I played some with the D8 rest API configurations without much luck. Even with a lot of module/configuration changes I couldn't get the API to return basic stuff like taxonomies/entities. Unless I'm missing something, it feels like D8 basically kills the viability of general-purpose API-based tooling since the author of such tooling could make very few assumptions about what APIs/formats a given Drupal installation |
| [12:36:20] | <symbioquine_> | might expose. |
| [12:37:51] | * bkumpula[m] has quit (Quit: User has been idle for 30+ days.) |
| [12:38:21] | <symbioquine_> | Also, I had trouble finding very comprehensive/coherent documentation for the functionality that is exposed. |
| [12:40:25] | * donblair[m] has quit (Quit: User has been idle for 30+ days.) |
| [12:42:22] | <mstenta[m]> | symbioquine_: Huh - I haven't played with it much myself either, but my assumption is that it works similarly to the way the `restws` module works in D7 |
| [12:42:35] | <symbioquine_> | Obviously that isn't necessarily a problem for FarmOS, since FarmOS has the prerogative of choosing a more sane default configuration and documenting it well. |
| [12:42:42] | <mstenta[m]> | Automatically generates RESTful endpoints for each entity type |
| [12:42:47] | <mstenta[m]> | generalredneck: you might know more? |
| [12:43:17] | <generalredneck[m> | I'm looking... I've only ever generated my own Resources so far. |
| [12:43:18] | <mstenta[m]> | Yes true... we are essentially defining the API using the building blocks/features Drupal provides |
| [12:43:45] | <mstenta[m]> | So for farmOS, we define our entity types, which we can then publish and describe in our own documentation |
| [12:43:59] | <mstenta[m]> | (like we do now: https://farmOS.org/development/api) |
| [12:44:00] | <generalredneck[m> | content for sure is a default resource... I just don't know about other entities |
| [12:44:06] | <symbioquine_> | "my assumption is that it works similarly to the way the `restws` module works in D7" - That's what I was hoping for, but either I wasn't using it right or you don't get that out-of-the-box... |
| [12:44:42] | <generalredneck[m> | and at one point I know the "UI" wasn't there and you have to use json configuration or enable them using your settings.php |
| [12:45:40] | <generalredneck[m> | give me a minute to spin up a lando instance and I'll poke around because it's been a while |
| [12:48:29] | <symbioquine_> | Someone mentioned earlier, the question of making client libraries detect D7 vs D8. I think that could be done using the 'x-generator' header returned as part of the login page... |
| [12:49:01] | <generalredneck[m> | yeah if you make sure to do that... I would use a differnt api version number though |
| [12:49:30] | <generalredneck[m> | some people hid the x-generator header because of the "security" implications |
| [12:49:51] | <mstenta[m]> | yea we did implement an "API version" in the `/farm.json` endpoint for that very reason |
| [12:50:18] | <generalredneck[m> | it's very popular to have the version as part of the URL as well |
| [12:50:22] | <mstenta[m]> | https://farmos.org/development/api/#farmjson |
| [12:50:54] | <generalredneck[m> | that way you can provide simultaneous compatibility and handle apps that try to acces the older apis |
| [12:50:54] | <symbioquine_> | For a FarmOS-specific client depending on farm.json makes sense. |
| [12:51:07] | <mstenta[m]> | > it's very popular to have the version as part of the URL as well |
| [12:51:07] | <mstenta[m]> | yea! i would love that... unfortunately i don't think it's really feasible in our case because that would also imply that the code supports multiple versions |
| [12:51:27] | <generalredneck[m> | ☝️ very true |
| [12:51:54] | <generalredneck[m> | but you could always supply a deprecated message via all your resources on older versions. |
| [12:52:13] | <symbioquine_> | I think a more practical approach would be a stand-alone proxy which adapts between the two API versions. |
| [12:53:01] | <generalredneck[m> | Depends on your traffic... you produce a single point of failure there... |
| [12:53:14] | <mstenta[m]> | my thought is it could be handled downstream by the api consumer code |
| [12:53:51] | <mstenta[m]> | eg: check to see if the farmOS version is one that is supported, and only proceed if that's the case (because the code is built on those assumptions) |
| [12:54:22] | <mstenta[m]> | it's not ideal in every situation of course |
| [12:54:23] | <symbioquine_> | What do you mean generalredneck[m about a single point of failure? |
| [12:55:02] | <generalredneck[m> | if you have a proxy that directs traffic based on version |
| [12:55:08] | <symbioquine_> | mstenta[m], then each clients' code-base gets increasingly more complex the more versions of the FarmOS API it needs to support. |
| [12:55:13] | <generalredneck[m> | that means the proxy is the point of failure |
| [12:55:30] | <generalredneck[m> | example... a rouge syntax error would bring down all api endpoints |
| [12:55:31] | <symbioquine_> | What kind of failure are you anticipating? |
| [12:56:21] | <generalredneck[m> | > Even with a lot of module/configuration changes I couldn't get the API to return basic stuff like taxonomies/entities |
| [12:56:21] | <generalredneck[m> | about this... what do you see at /admin/config/services/rest? |
| [12:56:28] | <symbioquine_> | Yeah, obviously it's only as good as the implementation :) |
| [12:56:32] | <generalredneck[m> | bah... markdown fail |
| [12:56:32] | <mstenta[m]> | symbioquine_: not necessarily... really depends on the changes being made. we will always try to maintain backwards compatability on the major version (eg: 1.x)... and minor versions will generally only ADD things |
| [12:57:06] | <mstenta[m]> | in the near future, the main thing it will be useful for is asking "is this farmOS 1.x or 2.x" - which will most likely have breaking changes |
| [12:57:08] | <generalredneck[m> | symbioquine_: about ☝️... what do you see at /admin/config/services/rest? |
| [12:59:06] | <generalredneck[m> | ACTION uploaded an image: image.png (359KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/oXIgKcjAuQQeAhjm... > |
| [12:59:09] | <generalredneck[m> | you should see something like☝️ |
| [12:59:37] | <generalredneck[m> | obviously I have custom entities in this implementation and a custom resource |
| [12:59:58] | <mstenta[m]> | oh wow |
| [13:00:01] | <mstenta[m]> | that is nifty! |
| [13:00:28] | <mstenta[m]> | and so in our case, we will pre-enable the entity types we create by default in config |
| [13:03:40] | <symbioquine_> | https://user-images.githubusercontent.com/30754460/71594147-998c2080-2ae... |
| [13:06:16] | <generalredneck[m> | obviously you can combine some creation (if the default resources don't cut it) by creating your own... https://www.drupal.org/docs/8/api/restful-web-services-api/custom-rest-r... will be helpful and `drupal generate:plugin:rest:resource` will be your friend using Drupal Console |
| [13:07:34] | <generalredneck[m> | Drupal console uses a little dated code template... but it sure does help for getting moving fast. |
| [13:11:30] | <generalredneck[m> | symbioquine_: did that help out or did I miss out on something specific you were trying to accomplish? |
| [13:21:24] | <symbioquine_> | With D7 I can query a list of all the taxonomies by issuing a GET request against `/taxonomy_vocabulary.json`, but I haven't been able to get the equivalent to work with D8. |
| [13:22:29] | <mstenta[m]> | in your screenshot, it looks like the D8 equivalent URL is: /entity/taxonomy_vocabulary.json |
| [13:23:44] | <mstenta[m]> | symbioquine_: side question: i see that you have "oauth2" as an authentication option - are you using the `simple_oauth` module? (https://www.drupal.org/project/simple_oauth) paul121 has been looking into that for farmOS to use in D8 |
| [13:24:57] | <symbioquine_> | "in your screenshot, it looks like the D8 equivalent URL is: /entity/taxonomy_vocabulary.json" - I've tried that. ...and various combinations of `_format` params. |
| [13:25:25] | <mstenta[m]> | oh hmm |
| [13:25:36] | <symbioquine_> | mstenta[m], experimenting with OAuth was actually the reason I started looking into D8 since I was having trouble getting it to work on D7. |
| [13:27:49] | <symbioquine_> | For this API-level testing though I'm just logging in, then getting a CSRF token from `/session/token` ,and passing that as part of my requests. |
| [13:31:22] | <generalredneck[m> | so your Accept type needs to match what you have in your "get" parameters. |
| [13:31:37] | <generalredneck[m> | rather your Content-Type header |
| [13:32:13] | <generalredneck[m> | I seem to recall there being issues... I'll try enabling taxonomy and the resourse locally real quick |
| [13:35:33] | <mstenta[m]> | You know... this actually relates to something we need in farmOS Field Kit... |
| [13:35:40] | <symbioquine_> | I've tried setting various content-type headers on my requests like; `Content-Type: application/vnd.api+json` |
| [13:35:55] | <mstenta[m]> | There isn't a built-in way in Drupal of asking "what bundles are available for this entity type?" |
| [13:36:03] | <mstenta[m]> | Which is what we need in Field Kit to know which log types are available |
| [13:36:10] | <mstenta[m]> | (Since that depends on which modules you have installed) |
| [13:36:30] | <mstenta[m]> | So we worked around that by listing some of that info in `/farm.json` for now... but ultimately I feel like that should be a Drupal core feature |
| [13:36:39] | <mstenta[m]> | And that's essentially what the vocabularies are too... |
| [13:36:42] | <generalredneck[m> | there is in D8 |
| [13:36:46] | <mstenta[m]> | Oh?? |
| [13:36:53] | <symbioquine_> | curl --cookie-jar farmOS-cookie.txt -d 'name=root&pass=test&form_id=user_login' http://172.18.0.3/user/login |
| [13:36:53] | <symbioquine_> | TOKEN="$(curl --cookie farmOS-cookie.txt http://172.18.0.3/session/token)" |
| [13:36:53] | <symbioquine_> | curl -i --cookie farmOS-cookie.txt -H "X-CSRF-Token: ${TOKEN}" http://172.18.0.3/entity/taxonomy_vocabulary |
| [13:37:00] | <symbioquine_> | yields a 404 |
| [13:37:03] | <generalredneck[m> | I say that... I thought /entity/node_type was a thing |
| [13:37:15] | <generalredneck[m> | but looks like you got to know the node_type to be able to use it |
| [13:37:45] | <mstenta[m]> | Ah ok so there isn't a general way to get a list of bundles? |
| [13:40:42] | <generalredneck[m> | not that I know of off the top of my head. You can't access configuration entities generically obviously... but that would be an easy resource to create |
| [13:46:34] | <mstenta[m]> | cool yea - so maybe we'll end up writing a simple contrib module for that |
| [13:49:24] | <mstenta[m]> | or just keep doing what we're doing with something custom in farmOS |
| [13:51:21] | <generalredneck[m> | mstenta: https://www.drupal.org/project/entity_rest_extra |
| [13:51:51] | <generalredneck[m> | doesn't get super points for people using it... but looks like it has what you are asking for. |
| [13:53:27] | <mstenta[m]> | oh interesting! |
| [14:05:31] | <generalredneck[m> | > curl -i --cookie farmOS-cookie.txt -H "X-CSRF-Token: ${TOKEN}" http://172.18.0.3/entity/taxonomy_vocabulary |
| [14:05:32] | <generalredneck[m> | symbioquine_ yeah you are right... there's not an endpoint for listing all vocabularies. |
| [14:05:59] | <generalredneck[m> | if you know what vocabulary you want... you can get it's information... |
| [14:09:46] | <generalredneck[m> | apparenlty that module above ☝️ was also proposed as a feature requiest https://www.drupal.org/node/2355291#comment-9241689 |
| [14:15:14] | <symbioquine_> | With the `farmos/farmos:8.x-2.x` docker image, I don't see any vocabularies at `/admin/structure/taxonomy` is that expected? |
| [14:17:35] | <mstenta[m]> | <symbioquine_ "With the `farmos/farmos:8.x-2.x`"> Oh... @sysymbioquine_ there is no farmOS version for Drupal 8 yet |
| [14:17:50] | <mstenta[m]> | Or rather: it has barely begun |
| [14:18:07] | <mstenta[m]> | Sorry I misunderstood your earlier I think |
| [14:19:46] | <mstenta[m]> | So yes. That's expected because no vocabularies have been created in farmOS 8.x-2.x yet |
| [14:20:38] | <symbioquine_> | Ok, I think the combination of having no vocabularies and D8 not providing any useful APIs when it doesn't have any data explains the behavior I was seeing. |
| [14:21:08] | <mstenta[m]> | Ah ok |
| [14:21:26] | <symbioquine_> | Weird for them not to include any "meta APIs" in the core system... feels like a step backwards. |
| [14:21:56] | <mstenta[m]> | Yea although drupal 7 core didn't either |
| [14:22:18] | <mstenta[m]> | It was the restws module that provided the vocabulary list I think |
| [14:22:34] | <mstenta[m]> | Just for vocabularies though |
| [14:22:47] | <mstenta[m]> | Not other entity types |
| [14:23:26] | <mstenta[m]> | But yea, I agree, it's a step backward from Drupal7+restws in that regard, it seems |
| [14:27:04] | <symbioquine_> | Makes sense |
| [14:27:40] | <generalredneck[m> | Looks like that module has some bugs we would have to figure out |
| [14:29:01] | <generalredneck[m> | ACTION uploaded an image: Screenshot_2019-12-30_13-28-45.png (128KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/dwEBEOifrLZBPLTq... > |
| [14:29:21] | <mstenta[m]> | womp womp |
| [14:29:25] | <paul121[m]> | > symbioquine_: side question: i see that you have "oauth2" as an authentication option - are you using the `simple_oauth` module? (https://www.drupal.org/project/simple_oauth) paul121 has been looking into that for farmOS to use in D8 |
| [14:29:25] | <paul121[m]> | Wooo! Excited about OAuth! |
| [14:30:16] | <symbioquine_> | Yeah, it would be ideal for tooling like my area-feat-proxy not to to need to deal with credentials directly. :) |
| [14:30:25] | <symbioquine_> | *feature |
| [14:30:48] | <paul121[m]> | I've only played with it a little bit in D8. But seems like `simple_oauth` is even more straight forward than the D7 module `oauth2_server` |
| [14:32:14] | <paul121[m]> | We're hoping to make tokens migrate when upgrading from D7 to D8, too! I think we could make this even easier by using JWT - because then they aren't saved to the DB. Just encrypted with a public/private key that would be moved to the new server |
| [14:32:19] | <symbioquine_> | Yeah, it seemed easier to set up Oauth2 with D8. |
| [14:32:47] | <paul121[m]> | Both the D7 and D8 modules support JWT, so hopefully it's compatible |
| [16:05:29] | <paul121[m]> | ACTION uploaded a video: aggregator-demo.mp4 (341KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/ICtXxzpJEpYDizMR... > |
| [16:06:05] | <paul121[m]> | Here's a demo of the OAuth2 Authorization Code flow in use with the Aggregator... |
| [16:06:44] | <paul121[m]> | This is the "new" Open Registration page I've been working on. Good example of OAuth capabilities |
| [16:07:16] | <mstenta[m]> | Wow! That is awesome paul121 !!! |
| [16:09:24] | <paul121[m]> | Thanks! Still hindered by having to do a "pop up" and not complete redirection |
| [16:09:59] | <paul121[m]> | But when a window is full-screen it opens a new tab instead of opening a new window.. almost like redirect.. haha |
| [16:10:38] | <mstenta[m]> | On the topic of exciting new features... @jgaehring:matrix.org and I are getting the "find nearby areas" working in Field Kit |
| [16:10:45] | <mstenta[m]> | https://twitter.com/getFarmier/status/1211756144651313154 |
| [16:11:56] | <paul121[m]> | !!! cool |
| [16:13:33] | <mstenta[m]> | Oh man... it was so exciting to walk outside just now (in the rain) and test it live with my garden beds |
| [16:13:55] | <mstenta[m]> | it works really well... i walked to different parts of the property and the list of "nearby" areas updated accordingly |
| [16:16:12] | <paul121[m]> | That'll be very useful! |
| [16:17:18] | * ludwa6 has quit (Quit: ludwa6) |
| [16:18:10] | <symbioquine_> | paul121[m], couldn't you save the current registration state to the db or pass it through embedded in the url somehow then use redirects? |
| [16:22:20] | <generalredneck[m> | Really wish the other layers were as good as google maps... my property doesn't even show on the others |
| [16:22:46] | <generalredneck[m> | But gmaps == $ |
| [16:23:52] | <mstenta[m]> | I wish we could drop google maps |
| [16:24:08] | <mstenta[m]> | It is a HUGE pain to get it working with the new OpenLayers |
| [16:24:24] | <paul121[m]> | symbioquine_: From what I understand, the redirect URL has to be saved on the farmOS server. In the initial authorization request, you must supply the redirect_url *exactly* as it is configured on the server |
| [16:24:57] | <paul121[m]> | With the distributed nature of farmOS this makes things hard.. |
| [16:25:13] | <symbioquine_> | generalredneck[m, Does your county provide GIS data? If so, you might be able to load that into QGIS and use https://github.com/symbioquine/farm-os-area-feature-proxy for certain mapping tasks... |
| [16:25:26] | * spicyfawkes[m] has left #farmos ("User left") |
| [16:25:31] | <mstenta[m]> | paul121: IIRC that's a limitation of the `oauth2_server` module, correct? |
| [16:25:45] | <symbioquine_> | paul121[m], Oh, that's frustrating. I thought it was only prefix whitelisting for the redirects :( |
| [16:25:46] | <mstenta[m]> | But might not be a limitation of `simple_oauth` in D8? |
| [16:26:22] | <symbioquine_> | Admittedly, haven't played with it very much yet. |
| [16:27:20] | <paul121[m]> | mstenta: yeah, I think `simple_oauth` might allow you to supply any redirect_url ... but it's also a best practice to match the redirect url for security |
| [16:28:01] | <paul121[m]> | > The best way to ensure the user will only be directed to appropriate locations is to require the developer to register one or more redirect URLs when they create the application. |
| [16:28:01] | <paul121[m]> | from https://www.oauth.com/oauth2-servers/redirect-uris/ |
| [16:28:59] | <paul121[m]> | So in the case of the Aggregator (or any 3rd party app that uses OAuth) I'm curious if we need to think more about this. Because we're distributed, we can't register a redirect_url for all farmOS servers |
| [16:29:30] | <paul121[m]> | An OAuth2 client can be added and configured via a drupal hook |
| [16:29:48] | <paul121[m]> | (`farmos_api_oauth` does this to configure the default OAuth2 server and client) |
| [16:30:20] | <paul121[m]> | But that means 3rd party apps have to supply a drupal module to do this, have it enabled, etc |
| [16:30:50] | <mstenta[m]> | right... that's not a reasonable expectation |
| [16:31:01] | <mstenta[m]> | i don't think... |
| [16:31:11] | <mstenta[m]> | this all will require some more thought, i agree |
| [16:31:23] | <mstenta[m]> | i need to run... evening == family time here |
| [16:31:34] | <mstenta[m]> | talk to you all later! |
| [16:32:08] | <paul121[m]> | 👋 |
| [16:33:35] | <generalredneck[m> | > generalredneck, Does your county provide GIS data? If so, you might be able to load that into QGIS and use https://github.com/symbioquine/farm-os-area-feature-proxy for certain mapping tasks... |
| [16:33:35] | <generalredneck[m> | Yeah it's there. Gives a pretty good idea of property lines as they were in the past year. Just they dont show the same amount of water features and stuff you can get from satalite view on GMaps |
| [16:34:57] | <symbioquine_> | Bummer. Some counties provide higher resolution aerial imagery. |
| [16:35:19] | <mstenta[m]> | > But gmaps == $ |
| [16:35:19] | <mstenta[m]> | generalredneck fwiw I have a single API key that I provide to all Farmier-hosted instances, and I haven't been charged anything yet - so their API request limits are very reasonable |
| [16:36:15] | <paul121[m]> | Oh interesting.. |
| [16:36:20] | <generalredneck[m> | ACTION sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/fUUOhpRarAieQBTJ... > |
| [16:37:00] | <generalredneck[m> | ACTION uploaded an image: Screenshot_20191230-153545_Maps.jpg (176KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/aTCoLvkbnTFclUYE... > |
| [16:37:06] | <generalredneck[m> | ACTION uploaded an image: Screenshot_20191230-153448_Chrome.jpg (123KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/ukhWpKTHkSyMBFFy... > |
| [16:38:23] | <generalredneck[m> | I'm 8281 and 8282 |
| [16:38:38] | <paul121[m]> | symbioquine: I was curious with QGIS... can that host a map/tile layer that could be pulled in with farmOS or Openlayers? |
| [16:40:49] | <paul121[m]> | generalredneck: looks nice!! - the second image, is that public property lines of some sort? |
| [16:41:14] | <generalredneck[m> | Yeah tax appraisal lines |
| [16:44:29] | <generalredneck[m> | Only have 8 1/2 acres :p not a lot... but a find this close to Dallas |
| [16:45:13] | <symbioquine_> | paul121[m], I'm not sure about that. I think QGIS can run as some sort of feature server, but I don't know what it would take to configure the map in FarmOS to display features from it. |
| [16:46:53] | <symbioquine_> | The objective of farm-os-area-feature-proxy serves a different use-case. It only lets you work with the FarmOS areas data in external software that supports the WFS protocol. |
| [16:46:54] | <generalredneck[m> | Interesting. Didnt even know you could do that at all :p |
| [16:48:49] | <paul121[m]> | Right. But that's a great tool to have, too! |
| [16:49:15] | <paul121[m]> | I haven't had a chance to play with it yet. But your demo looked awesome. |
| [16:49:47] | <paul121[m]> | I'm curious how we can get custom imagery into farmOS.. for when someone comes asking if they can fly a drone over their farm and use the imagery.. |
| [16:51:02] | <generalredneck[m> | Yeah... I was thinking the same... even if someone wanted to do like a hand drawn map on a napkin (I'm only half kidding) |
| [16:51:45] | <generalredneck[m> | Because like with my networking software showing my wifi radios I can do that... |
| [16:52:26] | <paul121[m]> | Do you have ubiquiti gear? :-) |
| [16:52:42] | <generalredneck[m> | Unifi has like $$$ to throw at a feature like that :p |
| [16:53:05] | <generalredneck[m> | How'd you guess :p |
| [16:54:32] | * JustTB has joined #farmos |
| [16:54:52] | <generalredneck[m> | The beauty of small property and ubiquitous really great radios... not hard (or expensive) to throw up a mesh network all on the same ssid |
| [16:55:38] | <paul121[m]> | Yea! Which radios are you using? |
| [16:56:31] | <paul121[m]> | I've worked with the Nanobeams to create some ~0.5mi bridges on a farm property. But didn't touch whole-farm wifi coverage... yet :D |
| [16:58:07] | <generalredneck[m> | Unifi ac mesh uap-ac-m for most of them but I have a nanobeam and a lite beam for the high bandwidth applications like my office and the stables |
| [16:59:15] | <generalredneck[m> | The mesh gets saturated really easily if you start using zoneminder on it |
| [17:02:32] | <generalredneck[m> | Theres a thought... hook up a zoneminder alarm script to FarmOS to write observations... especially if you were able to run the frame through some ai to determine what the frame was like the greater of zmninja wrote about here https://medium.com/zmninja/inside-the-hood-machine-learning-enhanced-rea... |
| [17:03:25] | <generalredneck[m> | If the machine learning script could differentiate coyote for example :p |
| [17:05:47] | <paul121[m]> | What is zoneminder? |
| [17:05:51] | <paul121[m]> | That's a great setup! |
| [17:07:08] | <generalredneck[m> | Zoneminder is a pho application for managing camera feeds |
| [17:07:19] | <paul121[m]> | Ah! It's open source, too! Neat. |
| [17:08:32] | <generalredneck[m> | Been around for ages. And the support for cheap cameras is great... if you get the hang of it. |
| [17:10:16] | <paul121[m]> | Cool. I do some tech work for a local security company and have done a good bit of camera installs |
| [17:10:45] | <paul121[m]> | But we use ExacqVision software. Runs on linux at least, but not open. I've wondered if there was something out there |
| [17:12:07] | <paul121[m]> | But.... that would be super cool integration :D |
| [17:12:30] | <paul121[m]> | Or - "The tractor is parked in the shed - create a movement log" |
| [17:13:10] | <generalredneck[m> | That one might be easier honestly |
| [17:16:22] | <generalredneck[m> | You can choose areas on the camera view to fire different events when there is movement... so where the tractor sits would be an area and you could poll the api for when an event of that type fired. And then write a log for it. |
| [17:16:53] | <generalredneck[m> | I once did that with my camera at the gate to tell me when people drove up to it. |
| [17:17:57] | <symbioquine_> | > I'm curious how we can get custom imagery into farmOS.. for when someone comes asking if they can fly a drone over their farm and use the imagery.. |
| [17:17:59] | <symbioquine_> | Yeah, there are definitely use-cases where it is far better to have the imagery appear directly within FarmOS. |
| [17:19:47] | <paul121[m]> | > You can choose areas on the camera view to fire different events when there is movement... so where the tractor sits would be an area and you could poll the api for when an event of that type fired. And then write a log for it. |
| [17:19:47] | <paul121[m]> | Oh neat! Another thought.... would it be easy to use those zoneminder to take images and attach them to logs? |
| [17:20:17] | <paul121[m]> | My thought... you could have an image captured every time the tractor is parked or left. And see who is driving |
| [17:20:22] | <generalredneck[m> | I don't see why not |
| [17:20:44] | <paul121[m]> | OR ... use zoneminder as a way of snapping pics in a distribution/pack house setting |
| [17:20:53] | <generalredneck[m> | The event gives you frame URLs if you want |
| [17:21:29] | <paul121[m]> | That's neat. I'll have to try and play with that some, too |
| [17:22:23] | <generalredneck[m> | Motion detection takes some fiddling just fyi. Depends on how good the camera is. |
| [17:23:09] | <paul121[m]> | > Yeah, there are definitely use-cases where it is far better to have the imagery appear directly within FarmOS. |
| [17:23:09] | <paul121[m]> | symbioquine_ Yeah. There's some groups working on larger scale satellite imagery and classifications. And curious how we can get that info farmOS - they might have a models for a certain region or state |
| [17:23:58] | <paul121[m]> | > Motion detection takes some fiddling just fyi. Depends on how good the camera is. |
| [17:23:58] | <paul121[m]> | Right. I think the ExacqVision software does some of that, but I haven't been (paid to) play with it |
| [17:25:23] | <paul121[m]> | The latest client is a hemp farm.. they want an RFID system to track vehicles/tractors/atv's moving around the property. That's the next thing I get to play with. Being a farm I'm also trying to steer them towards farmOS... |
| [17:26:32] | <generalredneck[m> | Lol |
| [17:34:21] | <paul121[m]> | Reading the Zoneminder docs, it could be cool to include live streaming on an Asset page |
| [17:35:18] | <paul121[m]> | Looks pretty easy. And you can add simple html to an asset page in farmOS... maybe you could try this generalredneck ;) https://zoneminder.readthedocs.io/en/stable/api.html#live-streams |
| [17:36:33] | <generalredneck[m> | Yeah I was thinking it would be cool to have a media entity for it |
| [17:37:34] | <generalredneck[m> | That would allow you to add the video as a entity reference in D8 |
| [17:40:57] | <generalredneck[m> | Otherwise you could copy the video (or image) using php... that way the file doesn't get garbage collected... or if say the zoneminder server isn't public. |
| [17:42:14] | <generalredneck[m> | Also that way you get the advantage of image styles and the like instead of always showing the full 1080p image :p |
| [17:48:16] | <paul121[m]> | Ohh I see |
| [17:49:34] | <paul121[m]> | Wait - would that be for saving media to DB? |
| [17:50:21] | <paul121[m]> | Or basically add more capabilities over just embedding a <img ... > tag? |
| [17:57:21] | <generalredneck[m> | > Or basically add more capabilities over just embedding a <img ... > tag? |
| [17:57:21] | <generalredneck[m> | That one. |
| [18:08:29] | <paul121[m]> | Interesting. Didn't know about image styles! |