title: Is breeze server side metadata mandatory or can it be be defined client-side?
body: <p>I am looking in to using breezejs and have a few questions in terms of its capabilities and the best practices that come with it.</p>
  
  <ol>
  <li>Does server side metada have to exist?  If I have a non EF WebApi controller do I still have to wrap it with the ProviderContext and implement metadata?  If so, what is the format of the metadata?</li>
  <li>If I am able to omit metadata on the server side and just implement the queryable actionfilter, can I still write client side code to define the metadata? Where would I find information on how to do this?</li>
  <li>I have a server Model class called Job with an id and name, which are simple properties and an object property called Company which points to a server side model class called Company which has an id and name.  Job(s) can be confidential (through a boolean IsConfidential property on Job) in which case even though they still have a companyId, that property should not be sent to the client.  Instead there should be a server-side computed property called CompanyName (basically Company.Name for non-confidential Jobs and "Confidential" for confidential jobs) that is sent to the client.  Admin roled users should be able to see and edit CompanyId but regular users should not be able see or post/put that value.  How do you accomplish this in breeze?  Does breeze deal well with sending and receiving non-Model ViewModels (less properties and some computed properties)?</li>
  <li>Is the source for the source code for the ODataActionFilter something I can use and change for any purpose I want?</li>
  <li>How difficult would it be to create WebApi Controllers for something other than EF - maybe like Telerik OpenAccess?</li>
  </ol>
  
  <p>Thanks</p>