# Request data and script questions

**URL:** <https://forum.genieacs.com/t/request-data-and-script-questions/471>\
**Category:** Uncategorized\
**Created:** [November 21, 2019, 9:24pm UTC](https://forum.genieacs.com/t/request-data-and-script-questions/471 "2019-11-21T21:24:32Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![pobk](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/pobk/32/109_2.png) [@pobk](https://forum.genieacs.com/u/pobk)\
**Post date:** [November 21, 2019, 9:24pm UTC](https://forum.genieacs.com/t/request-data-and-script-questions/471/1 "2019-11-21T21:24:32Z")

</div>

> [@GenieACS reference deployment](https://forum.genieacs.com/t/genieacs-reference-deployment/469/4):
>
> > [@GenieACS reference deployment](https://forum.genieacs.com/t/genieacs-reference-deployment/469/2):
> >
> > why can I not get some of the HTTP headers for the SOAP request?
> 
> Not to hijack the thread but let me share a bit of context as to why simple things like this are more complex than they may seem:
> 
> At some point in the future I plan to make Genie be able to skip executing the scripts that it knows won’t have any effect (i.e. all declare statements are guaranteed to be already satisfied). This would have a significant performance improvement but Genie is already plenty fast so this is not really a priority at this point. For this kind of black magic to even be possible we need the execution context to be predictable. So any information leaking from outside of the CPE data model (e.g. HTTP headers) is going to be a problem in the future. That’s not to say it’s not doable, it just needs to be planned right.

How do we add this to the backlog if it’s doable?

As I’ve mentioned before, there is absolutely a valid reason to receive data from outside of the data model genie holds for CPEs. This could include HTTP\_AUTH headers, SSL Client auth related certificates… This data is related directly to the context of processing the provisioning of the CPE.

Is there a reason the scripts are declarative?

I have to admit, I still don’t quite understand the operational semantics of declare()… and I’ve read all the documentation I can find on it. Given we’re dealing with objects in the TR-\* models it seems to me that possibly taking a more objective model wouldn’t be a bad thing…

~ R

---

<div class="post-metadata">

**Author:** ![zaidka](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/zaidka/32/9_2.png) [@zaidka](https://forum.genieacs.com/u/zaidka)\
**Post date:** [November 21, 2019, 11:33pm UTC](https://forum.genieacs.com/t/request-data-and-script-questions/471/2 "2019-11-21T23:33:22Z")

</div>

> [@pobk](#):
>
> How do we add this to the backlog if it’s doable?

There’s no public road map or feature requests tracker. The project is not that big yet. I’m afraid your best bet right now is to implement this yourself in your own fork.

> [@pobk](#):
>
> Is there a reason the scripts are declarative?

Yes, your peace of mind and good night’s sleep! It can be difficult to wrap your head around Genie’s scripting at first, and many aspects of it can be counter intuitive, but once you have your scripts done right it’s a smooth sailing from there. When talking scale, edge cases are no longer that and everything that can possibly go wrong will inevitably do. A declarative design forces you to approach your device configuration from that perspective.
